abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 16:33 | IT novinky

    Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce

    … více »
    NUKE GAZA! 🎆 | Komentářů: 7
    včera 13:55 | Nová verze

    Byl vydán Mozilla Firefox 149.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 4
    včera 13:22 | Nová verze

    Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland

    … více »
    Ladislav Hagara | Komentářů: 1
    včera 04:22 | Nová verze

    Byla vydána nová verze 10.2 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání. Vypíchnout lze nové balíčky Immich, Immich Machine Learning, uv a RustDesk Client.

    Ladislav Hagara | Komentářů: 0
    23.3. 22:11 | Nová verze

    TypeScript (Wikipedie), tj. JavaScript rozšířený o statické typování a další atributy, byl vydán v nové verzi 6.0. Příští verze 7.0 je kvůli výkonu přepisována do programovacího jazyka Go.

    Ladislav Hagara | Komentářů: 0
    23.3. 20:33 | Zajímavý článek

    Christian Schaller z Red Hatu na svém blogu popsal své zkušenosti s používáním AI při vývoji open source aplikací pro Linux. Pomocí různých AI aktualizoval nebo vytvořil aplikace Elgato Light GNOME Shell extension, Dell Ultrasharp Webcam 4K, Red Hat Planet, WMDock, XMMS resuscitated (aktualizace z GTK 2 a Esound na GTK 4, GStreamer a PipeWire) a Monkey Bubble. SANE ovladač pro skener Plustek OpticFilm 8200i se mu zatím nepovedl.

    Ladislav Hagara | Komentářů: 5
    23.3. 19:44 | IT novinky

    Americké firmy Tesla a SpaceX postaví v texaském Austinu moderní komplex na výrobu čipů pro umělou inteligenci (AI). Součástí projektu s názvem Terafab budou dvě moderní továrny na výrobu čipů – jedna se zaměří na automobily a humanoidní roboty, druhá na datová centra ve vesmíru. Uvedl to generální ředitel těchto firem Elon Musk. Projekt by podle odhadů měl stát 20 miliard USD (zhruba 425 miliard Kč).

    Ladislav Hagara | Komentářů: 13
    23.3. 15:00 | Nová verze

    Byla vydána nová stabilní verze 6.11 (YouTube) multiplatformního frameworku a GUI toolkitu Qt. Podrobný přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    23.3. 01:44 | Bezpečnostní upozornění

    Ubuntu 26.04 patrně bude ve výchozím nastavení zobrazovat hvězdičky při zadávání hesla příkazu sudo, změna vychází z nové verze sudo-rs. Ta sice zlepší použitelnost systému pro nové uživatele, na které mohlo 'tiché sudo' působit dojmem, že systém 'zamrzl' a nijak nereaguje na stisky kláves, na druhou stranu se jedná o možnou bezpečnostní slabinu, neboť zobrazování hvězdiček v terminálu odhaluje délku hesla. Původní chování příkazu sudo

    … více »
    NUKE GAZA! 🎆 | Komentářů: 18
    22.3. 21:33 | Komunita

    Projekt systemd schválil kontroverzní pull request, který do JSON záznamů uživatelů přidává nové pole 'birthDate', datum narození, tedy údaj vyžadovaný zákony o ověřování věku v Kalifornii, Coloradu a Brazílii. Jiný pull request, který tuto změnu napravoval, byl správcem projektu Lennartem Poetteringem zamítnut s následujícím zdůvodněním:

    … více »
    NUKE GAZA! 🎆 | Komentářů: 36
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1145 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Gentoo ebuild - 6 (závislosti, sloty, restrikce)

    30. 1. 2008 | David Watzke | Návody | 3919×

    Jak řešit závislosti jednotlivých ebuildů, včetně závislostí obrácených a těch, které jsou určeny USE flagy. Jak umožnit instalaci více verzí stejného ebuildu.

    Závislosti

    Závislosti jsou softwarové požadavky ebuildu. Existuje několik druhů závislostí.

    Závislosti potřebné k sestavení

    Do proměnné DEPEND patří všechny závislosti, které jsou třeba pro rozbalení, záplatování, sestavení a instalaci balíčku (s výjimkou implicitních, vizte níže).

    Závislosti potřebné ke spuštění

    Proměnná RDEPEND by měla obsahovat závislosti, které jsou potřeba pro běh programu. Pokud tuto proměnnou nezadáte, nastaví se automaticky na DEPEND.

    Při instalaci z binárního balíčku (vytvořeného např. pomocí qpkg nebo quickpkg) se kontroluje pouze RDEPEND, takže je třeba tam přidat i závislosti, které už jsou i v DEPEND.

    Poinstalační závislosti

    Do proměnné PDEPEND patří závislosti, které je třeba nainstalovat až po instalaci cílového balíčku. To je užitečné například pro zásuvné moduly instalovaného balíčku. Zpravidla je vhodné se PDEPEND vyhýbat a raději používat RDEPEND, vyjma případů, kde by to způsobilo kruhové závislosti.

    Implicitní systémové závislosti

    Všechny balíčky mají implicitní závislost na systémových věcech (vizte soubory packages* v adresáři a podadresářích $PORTDIR/profiles), jako je třeba gcc a libc. Tyto balíčky mezi závislosti nedávejte, pokud nepotřebujete konkrétní verzi nebo balíček (např. glibc místo uclibc).

    Syntaxe proměnných *DEPEND

    Vždy je třeba uvést alespoň kategorii a název balíčku, například games-fps/quake3. Přidáním patřičného operátoru před kategorii balíčku lze upřesnit požadovanou verzi.

    Popis
    <Nižší než daná verze
    >Vyšší než daná verze
    <=Nižší nebo rovno dané verzi
    >=Vyšší nebo rovno dané verzi
    ~Libovolná revize dané verze

    Může to vypadat například takto:

    DEPEND=">=app-i18n/enca-1.9
    	<dev-lang/perl-5.10.0"

    Při použití (samotného) operátoru = je možné zobecnit požadavek na verzi. Následující příklad se spokojí s jakoukoliv verzí knihovny Qt třetí řady.

    =x11-libs/qt-3*

    Dále lze také závislosti negovat, čili určit balíčky (třeba i jejich verze), které v systému být nesmí, aby se mohl nainstalovat ten cílový. Stačí přidat vykřičník před název kategorie.

    !app-text/pdftohtml
    !>=app-accessibility/speech-tools-1.2.95_beta
    !<app-text/texlive-2007

    Tolik tedy k určování verzí. Dále lze dát ebuildu na výběr z několika závislostí, které například poskytují stejnou funkčnost. Kupříkladu potřebuje-li váš ebuild Konqueror a vy víte, že jej poskytuje monolitický balíček kde-base/kdebase i rozdělený kde-base/konqueror, můžete napsat toto:

    || ( kde-base/konqueror kde-base/kdebase )

    Kulaté závorky určují blok, ke kterému se vztahuje výraz před nimi. V tomto případě to bylo ||, což určuje, že je vyžadován jen jeden balíček z bloku. Pro některé podobné případy, jako je vyžadování některé z implementací JRE, JDK, GhostScript atp., může být lepší záviset na patřičném virtuálním balíčku ($PORTDIR/virtual), který se o to postará za vás.

    Tímto se dostáváme k závislostem podmíněným USE flagy. Zápis je podobný předchozí ukázce, jen dáme před závorku místo výrazu || USE flag a za něj otazník. Pokud naopak chcete, aby se některé závislosti nainstalovaly, jen pokud je daný USE flag vypnutý, přidejte před něj ještě vykřičník.

    gif? ( media-libs/giflib )
    # pokud nejsme na architektuře amd64* a máme povolený
    # USE flag 'cdf', potřebujeme sci-libs/cdf
    !amd64? ( cdf? ( sci-libs/cdf )

    * USE flag architektury systému je nastaven automaticky.

    Všechno vyjmenované lze různě kombinovat. Následující řádek si v případě, že je zapnutý USE flag rar, vyžádá balíček rar nebo unrar (vybrat podle preference si můžete tak, že jeden z balíčků nainstalujete ručně).

    rar? ( || ( app-arch/rar app-arch/unrar ) )

    V ebuildu balíčku poppler-bindings najdeme tyto závislosti:

    RDEPEND="~app-text/poppler-${PV}
    	cairo? ( >=x11-libs/cairo-1.4 )
    	gtk? (
    		>=x11-libs/gtk+-2.6
    		>=gnome-base/libglade-2
    	)
    	qt3? ( =x11-libs/qt-3* )
    	qt4? ( =x11-libs/qt-4* )"
    DEPEND="${RDEPEND}
    	dev-util/pkgconfig
    	>=sys-devel/automake-1.9.6"

    Balíček poppler-bindings potřebuje k běhu poppler stejné verze, což se dá obecně vyřešit použitím ${PV}, jak si lze všimnout na prvním řádku. Není třeba znovu vypisovat stejné závislosti, proto klidně použijte již nastavenou proměnnou v té následující (v příkladu vidíme použití RDEPEND v DEPEND).

    Sloty

    Slotování přijde vhod ve chvíli, kdy chceme umožnit instalaci více verzí jednoho ebuildu, například KDE verze 3.x a 4.x, knihovnu GTK+ verze 1.2 a 2.x, Qt verze 3.3 a 4.x či zdrojové kódy jádra.

    Většina balíčků slotování nepotřebuje a v jejich ebuildech se nastavuje SLOT="0". To není totéž jako uvedení prázdného slotu, což vypne slotování úplně a není doporučováno.

    Portage umožňuje mít nainstalovanou jednu verzi od každého slotu.

    Restrikce

    V prvním díle jsem slíbil, že si později povíme více o proměnné RESTRICT a jejích možnostech. Jednotlivé vlastnosti v proměnné oddělujte mezerou. Následuje jejich vysvětlení.

    Pro ovlivnění automatického nastavení zrcadel existují restrikce mirror, primaryuri a fetch; mirror zakáže hledání souboru na oficiálních Gentoo zrcadlech, primaryuri změní pořadí hledání tak, že se soubor nejdříve hledá na zrcadlech zadaných v proměnné SRC_URI a teprve poté na těch oficiálních. A fetch se používá tehdy, když licence neumožňuje stažení potřebných souborů přímo a software je třeba nejdříve ručně uložit do $DISTDIR. V takovém případě je třeba do proměnné SRC_URI vypsat pouze názvy souborů a případně definovat funkci pkg_nofetch(), která uživateli vysvětlí, odkud (a který) balíček stáhnout, kam jej uložit a proč. Výchozí definice vypadá následovně:

    pkg_nofetch()
    {
    	[ -z "${SRC_URI}" ] && return
    
    	echo "!!! The following are listed in SRC_URI for ${PN}:"
    	local x
    	for x in $(echo ${SRC_URI}); do
    		echo "!!!   ${x}"
    	done
    	return
    }

    Restrikce test zakáže spuštění src_test(), vizte druhý díl tohoto seriálu.

    Chcete-li zabránit automatickému spouštění strip na binárky, nastavte stejnojmennou restrikci. To je vhodné například při instalaci předkompilovaných balíčků, kde by Portage jinak vypisovala varování, protože to řeší po svém.

    Restrikce userpriv vynucuje pro celý proces kompilace rootovská práva. To je výchozí chování Portage a změna nastane jen u uživatelů, kteří si tuto vlastnost explicitně povolili pomocí proměnné FEATURES.

    Balíčku, který neobsahuje žádné binárky, je vhodné nastavit restrikci binchecks, která zakáže QA kontroly. Toto není určeno k obcházení QA kontrol, o tom se zmíním v příštím díle.

    Distribuci binárních balíčků lze zakázat pomocí restrikce bindist. Kupříkladu binární balíčky Firefoxu smíte z licenčního hlediska šířit jen pokud aktivujete USE flag bindist nebo iceweasel. Program quickpkg vás na toto upozorní, alternativa qpkg (z balíčku portage-utils) zatím ne.

    Restrikce installsources zakáže stejnojmennou vlastnost, i když je uživatelem explicitně povolená pomocí proměnné FEATURES. Jde o vlastnost, která nainstaluje zdrojové kódy do /usr/src/debug/${CATEGORY}/${PF}, pokud je nainstalovaný debugedit a v CFLAGS nastavený nějaký debugovací přepínač, např. -ggdb.

    Příště

    Sedmý díl bude mimo jiné o EAPI 1 a QA kontrolách.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    herne the hunter avatar 30.1.2008 07:53 herne the hunter | skóre: 10 | tor lara
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 6 (závislosti, sloty, restrikce)
    omluvte moji potenciální neznalost (způsobenou tím, že jsem ještě nezkusil dost dister), ale tohle mi přijde jako _fakt namakanej_ balíčkovač. už bych měl to gentoo konečně prubnout!
    i am herne the hunter and you are a leaf driven by the wind.
    satanatas avatar 30.1.2008 11:18 satanatas | skóre: 14 | blog: vše co můžete s klidem hodit za hlavu ze světa linuxu i jiných světů | Graveyard
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 6 (závislosti, sloty, restrikce)
    vydrž čéče, tohle sem si taky říkal a nakonec jsem se s instalací ocitnul uprostřed té největší gentoo-krize. počkej na release 2008.0 nebo sleduj co se děje okolo gentoo a až si budeš stoprocentně jistý, že je všechno v pořádku a gentoo chytlo druhý dech tak do toho di. a nebudeš litovat.
    David Watzke avatar 30.1.2008 14:20 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 6 (závislosti, sloty, restrikce)
    Není se čeho bát, nešiř prosím tyhle bláboly, už takhle to dělá spousta lidí. Je to vysvětleno například v minulých distribučních novinkách.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    satanatas avatar 30.1.2008 16:37 satanatas | skóre: 14 | blog: vše co můžete s klidem hodit za hlavu ze světa linuxu i jiných světů | Graveyard
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 6 (závislosti, sloty, restrikce)
    omlouvám se, sem asi pořád ovlivněn tím, že jsem instaloval uprostřed toho všeho a ani sem si nevšimnul že se něco děje. teď už se snažím to dění okolo trochu sledovat, vždyť ta 2008 je příklad toho, že se to dává dopořádku.

    je ve mně asi pořád ještě trochu debianista/ubuntista, vymítači ke mně a čiňte se :+)
    Marián Kyral avatar 30.1.2008 15:04 Marián Kyral | skóre: 29 | blog: Sem_Tam | Frýdek-Místek
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 6 (závislosti, sloty, restrikce)
    vydrž čéče, tohle sem si taky říkal a nakonec jsem se s instalací ocitnul uprostřed té největší gentoo-krize.
    No jestli tohle byla největší Gentoo krize, tak to není tak strašné. Já si ničeho podstatného nevšiml ;-)
    satanatas avatar 30.1.2008 16:38 satanatas | skóre: 14 | blog: vše co můžete s klidem hodit za hlavu ze světa linuxu i jiných světů | Graveyard
    Rozbalit Rozbalit vše Re: Gentoo ebuild - 6 (závislosti, sloty, restrikce)
    30.1.2008 17:29 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše poradi zavislosti
    Lepsi nez || ( kde-base/kdebase kde-base/konqueror ) je zvolit || ( kde-base/konqueror kde-base/kdebase ), protoze resolvovani zavislosti postupuje od zacatku a je zbytecne uzivateli nutit "velky monoliticky balik kdebase", kdyz z nej staci pouze konqueror.
    David Watzke avatar 30.1.2008 17:37 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: poradi zavislosti
    Díky, tohle jsem nevěděl.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    30.1.2008 17:57 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: poradi zavislosti
    Opraveno.
    30.1.2008 19:06 stick | skóre: 10 | Praha
    Rozbalit Rozbalit vše Re: poradi zavislosti
    pravda, ale v tomto konkretnom pripade si myslim, ze sa pri builde konqueroru aj tak skompiluje 80% zdrojakov z monolitickeho balicka kdebase
    0118 999 881 999 119 725 3
    David Watzke avatar 30.1.2008 19:19 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: poradi zavislosti
    I kdyby to bylo tolik (není), tak je to pořád zbytečný. Jakmile se v čemkoliv z kdebase nalezne třeba bezpečnostní chyba, je vydán revbump a komu by se to celý chtělo znova kompilovat.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    6.2.2008 10:54 I
    Rozbalit Rozbalit vše Re: poradi zavislosti
    Gentoo portage sucks, BSD ports rocks.

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.