Rozrůstající se softwarová společnost v Plzni zabývající se telematikou hledá schopné vývojáře a nadšence se zájmem o OS Linux. Uplatnění zde najdou především vývojáři C++ se znalostí OS Linuxu, dále programátoři v jazyku Java nebo vývojáři se zkušenostmi s Oracle DB a Oracle ADF. Více informací o společnosti.
… více »
NASA, která společně s Rackspace stála u zrodu projektu OpenStack, se již nadále nebude podílet na dalším vývoji této "infrastructure-as-a-service" platformy. V NASA totiž došli k závěru, že vzhledem k podpoře OpenStacku ze strany společností jako Red Hat, AT&T a HP lze jejich práci považovat za dokončenou. Posléze se NASA plánuje stáhnout i z vývoje další platformy pro cloud computing jménem Nebula.
Blíží se svátek IPv6 a s ním i konference IPv6 Day. Na návštěvníky této akce čeká nejen bohatý program, ale také jedna speciální nabídka – v průběhu setkání bude možné získat se slevou 66 procent třetí vydání knihy IPv6 vysokoškolského pedagoga a publicisty Pavla Satrapy, tedy za 105 korun.
… více »
Letos v říjnu se v Praze uskuteční hned několik konferencí. Odehraje se zde nově vzniklá konference LinuxDays. K ní se přidá čtvrtý ročník openSUSE Conference, dvanáctý ročník SUSE Labs conference a aby to nebylo málo, přidá se i první ročník Gentoo miniconf. A to vše ve stejné dny a na stejném místě.
Printerd je název nového projektu tiskového démona, který bude využívat PolicyKit a D-Bus. Projekt je zatím na úplném začátku, takže nejde o nic vhodného k produkčnímu nasazení. Mimo jiné aktuálně akceptuje jako vstup jen PDF dokumenty.
Tři vývojáři ze společnosti Engine Yard přecházejí po dohodě mezi firmami do Red Hatu. Jde o vývojáře zabývající se rozvojem projektu JRuby. To ukazuje, že Red Hat má zájem o podporu alternativních jazyků nad OpenJDK.
Fedora přejde na knihovnu libusbx, což je fork původní knihovny libusb. Důvodem pro fork byl zjevný nedostatek času nebo zájmu ze strany správce projektu. libusbx už teď nabízí užitečné funkce navrch.
Vyšlo LLVM 3.1. Vylepšení se dotýkají podpory C++ 11 nebo architektur ARM a MIPS. Dále se můžete těšit z Python bindings nebo nástroje AddressSanitizer pro detekci chyb při práci s pamětí.
Praxe: optimalizace kompilací, nastavení požadovaných závislostí, příklady použití obslužných programů.
Celou Portage databázi
ebuildů lze aktualizovat z internetu pomocí rsync protokolu jediným
příkazem: #emerge sync. Není problém zvládnout to pomocí
modemu. Celý vývoj Gentoo distribuce tedy spočívá hlavně v aktualizaci
a rozvoji Portage, a ta probíhá opravdu čile. Viz seznam změn za
průběh předchozího dne s jejich časy. Pokud Portage náhodou
neobsahuje ebuild na to, co potřebujeme (je to dost malá pravděpodobnost), není žádná věda vzít podobný ebuild a upravit ho na daný program - pokud
chceme mít systém "čistý". Jinak jde samozřejmě použít klasika ./configure; make; make install. Na webu Gentoo je mimo to přesně popsána
tvorba ebuildu.
USE - /etc/make.conf
Hodnota proměnné USE nám ovlivňuje, jakou "architekturu" nebo spíš "styl"
bude mít celkově náš systém. Vše, co do něj instalujeme, se bude dle toho
konfigurovat. Všechny myslitelné parametry a jejich popisy se nachází v
souboru /usr/portage/profiles/use.desc - je jich skoro 200.
Nastavením hodnot určíme například, že náš systém bude podporovat CD-RW,
Javu, Open-GL, ALSA zvuk, KDE, scanner, CUPS, SSL, avi, mpg, MMX, 3Dnow...
Jestliže bude USE obsahovat parametr "alsa", znamená to, že se všechny
instalované balíčky budou snažit konfigurovat s podporou ALSA, pokud to u
nich bude možné. Obdobně bude "kde" znamenat přidávání aplikací do menu v KDE,
kompilace s GUI pro KDE... Naopak mínus znamená zákaz té či oné vlastnosti
jako třeba "-oss". Parametry USE můžeme nakonfigurovat globálně v souboru
/etc/make.conf (položka USE=), nebo je uvést při instalaci balíčku a ty
budou mít potom prioritu před globálním nastavením. Například:
#USE="-oss alsa" emerge xmms. K manipulaci s USE také
existuje příkaz euse z balíčku gentoolkit.
euse -i# Vypíše všechny parametry, jejich významy a
nastavení +/- .
euse -E xmms# Přidá do USE parametr (+) xmms.
euse -D xmms# Zakáže v USE parametr (-) xmms.
CGFLAGS - /etc/make.conf
Hodnota CGFLAGS je významná pro kompilaci a optimalizaci výsledného
binárního kódu pro daný typ procesoru. Může obsahovat hodnotu march
nebo mcpu=typ-CPU. Pokud uvedeme mcpu, binární kód bude optimalizován na
daný typ procesoru, ale zachová si zpětnou kompatibilitu. Hodnota march
bude potom znamenat přesnou optimalizaci na uvedený typ, kód bude asi
trochu rychlejší, ale za cenu nekompatibility. Pokud bude march=athlon-xp, tak výsledný kód nebude funkční ani na obyčejném Athlonu, pouze na XP! (tak se to píše v make.conf, přiznám se, že jsem to nezkoušel)
etc-update
Může se stát, že po upgrade nějakého balíčku dojde ke konfliktu s
konfiguračním souborem předchozí verze balíčku. Emerge nás upozorní,
že je třeba updatovat /etc soubory a jaký počet:
* GNU info directory index is up-to-date.
* IMPORTANT: 2 config files in /etc need updating.
* Type emerge --help config to learn how to update config files.
Nic nepřepíše a zálohuje si novější verzi. Konfigurační soubory pro
aktualizaci poznáte podle názvu - ten začíná ._cfg0000*. Stačí použít
#etc-update a to nás provede aktualizací konfiguračních
souborů a odstraní jejich zálohy.
emerge
Příkaz emerge slouží k instalaci balíčků, aktualizaci Portage,
vytvoření binárních balíčků, prohlížení závislostí toho, co budeme instalovat,
stažení zdrojáků, hledání v Portage... Uvedené příklady jsou jen
demonstrační a s parametry příkazu emerge jde vytvořit mnoho dalších
kombinací.
-U (--updateonly) # Pouze update balíčku. Užitečné, pokud máte
instalovány maskované ebuildy.
-b (--buildpkg) # Stejné jako -u. Navíc bude vytvořen binární balíček v /usr/portage/packages/All.
-B (--buildpkgonly) # Pouze vytvoří binární balíček, nebude instalován.
-f (--fetchonly) # Zařídí pouze stažení zdrojáků do
/usr/portage/distfiles a kontrolní součty.
-i (--inject) # Zařídí "virtuální" instalaci balíčku. Pro závislosti se bude jevit jako nainstalovaný. Ve skutečnosti nebude přítomen.
-k (--usepkg) # Pro instalaci se použije binární balíček z cesty
/usr/portage/packages/All - pokud tam bude. Pokud ne, jako -u.
-K (--usepkgonly) # Pro instalaci se použije binární balíček z cesty /usr/portage/packages/All. Pokud tam nebude, konec.
-v (--verbose) # Podrobnější výpis informací.
-o (--onlydeps) # Pouze závislosti pro daný balíček.
-O (--nodeps) # Nebudou řešeny závislosti.
-D (--deep) # V kombinaci s -u bude procházet celý strom závislostí, operace pak bude mít vliv i na nepřímo závislé balíčky.
-n (--noreplace) # Balíček bude instalován, ale jeho předchozí verze bude zachována.
-p (--pretend) # Pro prohlédnutí toho, co celý příkaz bude provádět. Šikovné v kombinaci s -v.
-C (unmerge) # Odinstaluje balíček. Pozor, neřeší při tom závislosti!
-s (search) # Hledání v portage.
-e (--emptytree) # Kompletní strom závislostí pro daný balíček
(nejen, co je třeba doinstalovat).
Praktické příklady:
#emerge sync
Synchronizuje Portage tree s aktuálním stavem na internetu
(pomocí protokolu rsync/873).
#emerge-webrsync
Stejné jako emerge sync, jen vše proběhne přes port 80
(užitečné, pokud váš FW blokuje port 873).
#emerge -u system
Dle Portage tree zaktualizuje všechny nainstalované systémové
balíčky.
#emerge -u world
Dle Portage tree zaktualizuje úplně všechno, co máte nainstalováno.
#nice -n19 emerge -u world
Spuštění procesu emerge -u world s nízkou prioritou, aby neobtěžovala
při současné práci na PC.
#emerge -upv system
Vypíše, co se bude aktualizovat (a konfigurace jednotlivých balíčků) při
aktualizaci systému.
#emerge -upv world
Vypíše, co se bude aktualizovat (a konfigurace) při aktualizaci všeho,
co je nainstalováno.
#emerge xmms
Instaluje xmms, pokud už je instalován přeinstaluje ho. Pokud chceme
instalovat maskovaný ebuild, je třeba uvést k němu cestu: #emerge /usr/portage/media-sound/xmms/xmms-1.2.9-r1.ebuild
(verze 1.2.9-r1 je maskovaná).
#emerge -u xmms mc nmap
Aktualizuje nebo nainstaluje xmms, mc, nmap (vše, co je ve frontě).
#emerge -f xmms
Pouze stáhne zdrojáky a případné záplaty pro xmms do adresáře
/usr/portage/distfiles.
#emerge -pv xmms
Vypíše závislosti xmms na ostatní ebuildy, pokud nejsou už nainstalovány.
Instaluje xmms z binárního balíčku, pokud je k dispozici na $PKGDIR cestě
= standardně /usr/portage/packages/All. Pokud ho nenajde,
postupuje jako u #emerge xmms.
Pojmem "instaluje" a "aktualizace" se myslí stažení zdrojáků z miroru
včetně případných záplat, aplikace záplat, konfigurace dle USE, kompilace
a instalace. Systém nejprve hledá v /usr/portage/distfiles.
Pokud tam zdrojáky nenajde, stahuje je z miroru. Jedná se vždy o nejvyšší
stabilní (nemaskované) verze tak, jak jsou ve vaší Portage, pokud se přímo
neodkážete na maskovaný ebuild nebo neupravíte make.conf, aby se ignorovalo maskování.
Jak zjistit (dotazovat se), co je instalováno?
Pohodlné je mít nainstalován balíček gentoolkit (obsahuje epm), případně
se podívat do /var/db/pkg/ (strom nainstalovaného a informací
o každém instalovaném balíčku - kontrolní součty souborů, nastavení USE, ...).
Příkaz epm = obdoba rpm. Má prakticky stejné parametry pro dotazy.
Nejčastěji používané:
#epm -q xmms
Vypíše verzi xmms.
#epm -qG xmms
Vypíše skupinu, do které balíček patří.
#epm -qa
Vypíše všechny nainstalované balíčky.
#epm -qa | grep xmms
Vypíše všechny nainstalované balíčky obsahující v názvu "xmms".
#epm -ql xmms
Vypíše soubory, které obsahuje nainstalovaný balíček xmms.
#epm -qf /etc/passwd
Vypíše jméno balíčku, do kterého patří soubor /etc/passwd.
#epm -qi xmms
Informace o balíčku xmms.
#epm -qd xmms
Vypíše soubory z balíčku xmms, které obsahují dokumentaci.
Možná by bylo dobré se zmínit o tom, proč se to všechno jmenuje emerge. Nespornou výhodou tohoto systému je totiž to, že instalaci provádí nejprve do dočasného adresáře a pak ten adresář "slije" (merge) se systémem. To umožňuje instalovat více verzí balíčků, což je u binárních systémů nemyslitelné. Pomocí
emerge prune
pak můžete jednou za čas odstranit všechny staré verze a ponechat si jen ty nejnovější. To jen tak na okraj.
To s tím "merge" víš z historie Gentoo nebo si to jen tak sám vysvětluješ?
Ptám se proto, že doposud jsem si myslel, že příkaz "emerge" znamená přesně to, co říká: software se "objeví" v systému.
No vidite, takhle dohromady jsem to nikdy nebral. Ono to "e" na zacatku je jen vlastne takovy sjednocujici prvek vsech programu, co pracuji nad portage. Viz. napr eupdatedb, efuse, ...
Asi to bude slovní hříčka obou významů. Termín "emergentní" se používá také u moderních systémů umělé inteligence nebo přesněji umělého života. "Emergentní vlastnost" je samovolně vyvinutá - objevící se vlastnost vytvořená evolučními procesy systému bez původního cílevědomého působení tvůrce...
12.3.2004 09:27
Martin T.
RozbalitRozbalit vše
Vyhledání balíčku k instalaci na základě jména programu
Zdravím!
Chtěl bych se zeptat na možnost zjištění názvu balíčku k instalaci, když znám program/příkaz, který chci nainstalovat. Nejde mi o zjištění příslušnosti už nainstalovaných programů/příkazů k balíčkům. Cca před rokem jsem se pokoušel zjistit, který balíček obsahuje 'tcpspray' a 'tcpblast', ale narazil jsem na to, že Gentoo nemá podobný vyhledávací engine jako je třeba na packages.debian.org. Změnilo se něco v tomto ohledu?
qpkg -f i qpkg -fp se pohybuje nad instalovanými balíčky.
Já septal na nějaký vyhledací nástroj kde se dá zjistit
balíček obsahující mnou hlednaný, ještě nenainstalovaný
soubor/příkaz.
Kupříkladu zmiňovaný tcpspray a tcpblast. Kdysi jsem je
potřeboval na testy propustnosti. Dočetl jsem se o nich v
nějakém článku či diskusi. Na packages.debian.org jsem
zjistil, že je to v balíku net/netdiag. Takže apt-get install
netdiag a bylo vymalováno. Pro gentoo jsem však tehdy nenašel
žádný takový vyhledávací nástroj. A portages balíček netdiag
neznalo.
12.3.2004 19:13
Ondroid | skóre: 31
| blog: Hombre
| Hradec Králové
RozbalitRozbalit vše
Vyhledání balíčku k instalaci na základě jména programu
Jestli chápu dobře tak chcete vyhledat balíček kterému patří nějaký soubor který však není ve vašem systému přítomen. Z principu věci to je nemožné. Skoro od každého balíčku může existovat X verzí jeho binární podoby v závislosti na nastavení USE. Snad teoreticky by to šlo nějakou webovou službou kdyby byla nějaká super-databáze ale o ničem takovém nevím.
Ano myslel jsem webovou službu, kde by se dalo dohledat, jaké soubory obsahuje daný 'balíček' a možnost reverzního vyhledávání v takovéto 'super-databázi'.
13.1.2006 08:50
j3nda | skóre: 13
RozbalitRozbalit vše
Re: Vyhledání balíčku k instalaci na základě jména programu
Taky tedka potrebuju nejake testy na LANce a Wifi, nicmene to vypada, ze netdiag lze najit v balicku 'nictools', viz:
http://ftp.belnet.be/linux/gentoo-portage/sys-apps/nictools/nictools-20030719.ebuild
existuje pohodlnejsi zpusob jak se dostat k maskovanym ebuildum nez plna cesta. promena ACCEPT_KEYWORDS urcuje jakou architekturu ma portage brat v uvahu. pro PC to bude x86. pokud pred architekturu pridate tildu ( ~ ) bude portage akceptovat i maskovane ebuildy. nastavovat to globalne v /etc/make.conf je pomerne rizikovy ale u nekritickych soucasti systemu se to da risknout (nikdy jsem s tim zadny potize nemel).
neco jako alias emergem="ACCEPT_KEYWORDS='~x86' emerge" v bashrc usetri peknych par klaves.
taky by se sluselo rict proc je vhodne pouzivat -v (verbose) spolecne s -p (pretend). krome jinych uzitecnych informaci se vypise presne nastaveni USE toho ktereho baliku - i ty varianty ktere nemate nastavene v make/conf. obcas se tam da objevit neco co pekne procisti zbytecne zavislosti.
dalsi uzitecna promena je PORTDIR_OVERLAY. na netu jde totiz najit ruzne neoficialni ebuildy ktere nejsou v portage tree (vetsinou z dobrych duvodu, pouziti je na vlastni nebezpeci ) pokud je nahrajete do /usr/portage pri provedeni emerge sync se smazou. spravny zpusob je vyhradit jim vlastni adresar a exporotvat promenou PORTDIR_OVERLAY ktera na nej ukazuje. takovy adresar bude emerge vnimat jako soucast portage tree ale rsync se na nem neprovede.
Nastaveni USE lze tez pohodlne menit pomoci editoru ufed (emerge ufed). Vyhodou je, ze tam jsou jednotlive polozky i s popiskem a tez je tam videt, ve kterem souboru je hodnota USE nastavena (/etc/make.profile/make.defaults, /etc/make.profile/use.defaults, /etc/make.conf).
1. #emerge -u world
Dle Portage tree zaktualizuje úplně všechno, co máte nainstalováno.
To neni tak úplně pravda, updatuje to pouze ty programy, které sou v /var/cache/edb/world. Tedy ty, které ste skutečně napsali jako emerge nějaký program. Aby se aktualizovaly také všechny jejich závisloti (tedy skutečně vše co máte na počítači) je třeba použít přepínač --deep spolu s --update world. Tedy emerge --update --deep world.
2.Pokud chceme instalovat maskovaný ebuild, je třeba uvést k němu cestu: #emerge /usr/portage/media-sound/xmms/xmms-1.2.9-r1.ebuild
Je možno použít kratší variantu a to emerge =xmms-1.2.9-r1. Analogicky se dají použít také >=, >, <=, <.
David.
Ze vlastni ebuildy je nejlepsi delat pomoci programu ebuilder(app-portage/ebuilder). Kterej si pomoci par dotazu zjisti dostatek informaci a ebuild za vas udela. Pripadne ho jeste doeditujete.
Pak je taky, pokud jste nekdy editovali nejaky jiz existujici ebuild, dobry prikaz ebuild /cesta/neco.ebuild digest, ktery za vas prepocita vsechny MD5 soucty...
No a taky, ze pokud nejaky balicek maskovany na urovni portage, tj. figle s ACCEPT_KEYWORDS a =,>= vam nepomuzou. Lze jeho maskovani najit v /usr/portage/profiles/package.mask a odmaskovat... (Jo a takle maskovany balicky myslim ani nejsou v portage videt, jen jsou na disku...)
Neznate nekdo nejaky efektivni zpusob jak mit na systemu nainstalovany balicky z x86 zaroven s nekolika balicky z ~x86?
Problem je ten, ze po provedeni 'emerge sync' chce 'emerge -u world' downgradovat maskovane balicky na jejich posledni stabilni verzi.
Napr. mplayer mam ve verzi 1.0_pre3-r1, a pokazde synchronizaci portage tree musim rucne menit vlajku v prislusnem ebuildu z ~x86 na x86, abych mohl provest 'emerge -u world'.
pres vikend jsem instaloval Gentoo od stage1. Ted ale nemuzu zaboha nahodit sit. kdyz si pingnu svuj server tak to jde, takze sitovka slape, ale dal do site se nedostanu. asi to mam spatne nakonfigurovany a nevim kde, nebo mi chybi nejakej programek. poradite mi nekdo? Ale nechci slyset neco jako "napis netconfig..." ... to taky nejde
Další možnost - je správně nastavená defaultní gateway (brána)? Zjistí se to přes příkaz route (popř. "route -n" pro zobrazení s IP adresami), nastavuje se to v souboru /etc/conf.d/net, jde o položku "gateway".
Ovšem čistší by bylo nakonfigurovat to přímo v /etc/conf.d/net - stačí zakomentovat všechno a nechat jen řádek 'iface_eth0="dhcp"' a pak spouštět síťovku přes /etc/init.d/net.eth0
Viz. též instalační dokumentace na http://www.gentoo.org/doc/en/handbook/handbook.xml?part=1&chap=8#doc_chap2
Zdravim všechny kolem downloadujici.
Předně díky za užitečný článek.
Problem:
Mam počítač s Gentoo za počítačem s firewalem, který mám ven otevřeno jen velmi málo portů. Většina věcí běží přes proxi na portu 8080.
Příkaz emerge-webrsync sice běží přes 80, ale tu mám zavřenou.
Existuje nějaký univezální způsob jak přesměrovat komunikaci na tento port?
Snad to není příliš triviální dotaz. Myslite ze by pomohla nějaká maškaráda nebo prerouting ?
soubor /etc/make.conf přidat něco jako :
HTTP_PROXY="http://192.168.1.1:8080"
Na Gentoo webu to je přesně popsáno:
http://www.gentoo.org/doc/en/faq.xml
http://www.gentoo.org/doc/en/portage-manual.xml
Kdyz chci nastavit USE, tak by se mi docela hodilo vedet, jaky parametry ten ktery balicek podporuje. Je mozne to nejak zjistit, ke kazdemu balicku zvlast? Diky, Mates
15.3.2004 21:05
Ondroid | skóre: 31
| blog: Hombre
| Hradec Králové
RozbalitRozbalit vše
Jak poznam, jake USE dany program podporuje?