Portál AbcLinuxu, 23. května 2024 18:30

Svatá trojice vs. balíčkovací systém

12. 12. 2007 | Petr Štrajt
Články - Svatá trojice vs. balíčkovací systém  

V diskuzi se občas objevují dotazy na to, jak si zkompilovat nějaký program. Většinou takové otázky pokládají začátečníci, kteří se o sestavení nějakého programu pokusili, protože jim určitý software chyběl. A první, co našli na stránkách hledaného programu, byla právě "svatá trojice". Přitom chtěného cíle mohli dosáhnout i mnohem méně trnitou cestou.

Pokud zjistíte, že vám chybí nějaký program, který potřebujete ke své práci, zkuste jej nejprve vyhledat pomocí balíčkovacího systému své distribuce, v naprosté většině případů potřebný software naleznete a nainstalujete během několika minut pomocí jednoho či dvou příkazů.

Může se stát, že na první pokus neuspějete (potřebný balíček není v databázi balíčkovacího systému nalezen) - nejčastěji k tomu dochází u různých kodeků sloužících k přehrávání multimediálního obsahu.

Tyto programy bývají šířeny pod nějakou omezující licencí, a proto je nebylo možno přidat do standardních repozitářů. Podrobné informace naleznete v dokumentaci vaší distribuce.

Kdy se tedy kompilace programu vyplatí?

Běžně jsou programy dostupné v balíčkovacích systémech většiny distribucí kompilovány s nějakým průměrným nastavením, které nevyužívá všechny možnosti programu. Pokud máte speciální požadavek, je pro vás sestavení ze zdrojového kódu řešením. Pak skutečně může přijít ke slovu "svatá trojice", což je ve skutečnosti posloupnost tří příkazů, s jejichž pomocí lze většinu zdrojových kódů, které využívají GNU Autotools, připravit ke kompilaci, zkompilovat a nainstalovat:

./configure
make
make install

Ti z vás, kteří mají chuť experimentovat, mohou zkusit své štěstí třeba při kompilaci webového prohlížeče Links. Je to relativně malý program a jeho sestavení by na průměrném stroji nemělo trvat dlouho.

Tenhle šikovný program, který je v základní konfiguraci textový, ale dokáže pracovat i v grafickém rozhraní, které naleznete ve většině distribucí. Chcete-li se dozvědět více, navštivte domácí stránku prohlížeče na adrese links.twibright.com. Informace potřebné ke kompilaci programu.

Když je kompilace tak mocný nástroj, proč ji tedy nepoužívat?

Nejčastěji první pokusy o kompilaci programu končí hláškou skriptu ./configure, že chybí nějaká knihovna nebo její vývojová verze.

Co jsou to knihovny a k čemu vlastně jsou?

Knihovna je část programu, která obsahuje funkce potřebné pro výkon nějaké činnosti, například vypsání textu na obrazovku, jak si ukážeme dál.

#include stdio.h
main() { printf("Ahoj svete\n"); }

Účelem programu je vypsat na obrazovku nápis Ahoj světe. Samotné vypsání požadovaného textu na obrazovku zajišťuje funkce printf.

Výhodou funkce je to, že programátor se zabývá pouze tím, co udělat, například vypsat text na obrazovku, a neřeší, jak to udělat, to má na starosti funkce.

Jak se liší vývojářská verze knihovny od běžné

Vývojářské verze knihoven obsahují hlavičkové soubory (obyčejně s příponou .h). Pokud máte nainstalovány tyto knihovny, tak můžete na svém systému kompilovat programy, které ke svému běhu využívají tyto knihovny.

Vývojářské verze knihoven nebývají součástí běžné instalace a právě jejich absence bývá nejčastější příčinou problémů s kompilací.

Další nevýhodou ručně kompilovaných programů je, že si sami musíte ohlídat, zda ve vašem programu nebyla odhalena nějaká bezpečnostní chyba a případně se postarat o její odstranění.

Častým argumentem pro ruční kompilaci nějakého programu bývá, že chcete mít novější verzi nějakého softwaru, než je ta, která je obsažena ve vaší distribuci.

Tuto situaci lze řešit vhodným nastavením zdrojů softwaru. Podrobnější informace o tom, jak to řešit v Debianu, naleznete v manuálu.

Závěr

O správě programů v Linuxu by toho šlo napsat ještě hodně, ale to už přenechám povolanějším. Pokud se mezi těmi, kdo tento zápisek četli, našel alespoň jeden člověk, který se vyhne chybám, které jsem nedávno také udělal, pak splnil svůj účel.

Související články

Na co se často ptáme: Balíčkovací systémy
Seriál: Instalace softwaru v Linuxu
Seriál: Gentoo ebuild
Seriál: Rukověť baliče RPM
Seriál: Balíčkovací systém Arch Linuxu
Smart Package Manager - instalujeme chytře
Zdroje balíčkov pre Ubuntu
Balíčkovací systém Mandrake Linuxu
Balíčkovací systém Gentoo Linuxu
Seriál: Nebojíme se kompilace

Další články z této rubriky

Praktický test komprese ZPAQ v programu lrzip
Porovnávání souborů PDF
Microsoft rozdává zadarmo stovky e-knih
Minimalistické prezentace s Markdown
Kde hledat Creative Commons a alternativy

Diskuse k tomuto článku

12.12.2007 00:18 lingvistický fašista
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Zkratka "vs" se píše bez tečky, neb ji tvoří první a poslední písmeno slova (tj. versus).
Prcek avatar 12.12.2007 02:17 Prcek | skóre: 43 | Jindřichův Hradec / Brno
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Kdy se tedy se kompilace programu vyplatí?
kompilovány s nějakém průměrným nastavením
s jejichž pomocí lze (většinu) zdrojových kódů (bud to nedavat do zavorky, nebo prekopat celou vetu)
příkaz pro jeho instalaci aktualizaci (chybi tam carka)
programátor se zabývá pouze tím co udělat (chybi tam carka)
Další nevýhodou ručně kompilovaných programů je, že se si sami musíte ohlídat
která je obsažena ve vaší distribuci (chybi tam tecka)
O správě programů v Linuxu, by toho šlo napsat ještě hodně (prebyva tam carka)
Člověk je takový, jak vypadá... A já vypadám jako pravá, nefalšovaná děvka!!!
12.12.2007 10:19 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Omlouvám se, včera jsem byl zjevně dost nepozorný.
13.12.2007 18:07 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
nn, nepochopil jsi; zkratka 'vs.' znamena 'v souboji s' :-D
12.12.2007 00:57 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Dalsim dost podstatnym duvodem pro pouzivani balicku jsou automaticke aktualizace (opravy chyb, bezpecnostni problemy,...), kontrola zavislosti a vetsinou take nejaka uroven podpory primo od distribuce.
Blésmrt
Vykook avatar 12.12.2007 01:22 Vykook | skóre: 23 | blog: Tomas
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
A neměl by nadpis znít: "Pekelná trojka, co pohřbila nejeden systém." :D
Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
12.12.2007 09:01 mozog | skóre: 28
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
muzes zduvodnit proc ?

ps: asi 2 roky jsem pouzival Slackware a drvivou vetsinu softwaru jsem si sam rucne kompiloval, dalo to hodne prace, ale pak jsem mel pekne vytunenej desktop
msk avatar 12.12.2007 09:11 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Zavislosti, kompatibilita, konzistentnost. Ja som vcera zhodou okolnosti riesil problem, ze sa mi jeden program linkoval s inou verziou kniznice, ako pouzival headery. Predpokladal som totiz, ze odinstalaciou starej verzie pomocou rpm mam po probleme. Ale kedze tam niekto narval este jednu verziu rucne, nasledoval find && rm, find && rm, find && rm a takto dookola 10 min nez som to z toho systemu odparal... Tak asi preto...
14.12.2007 13:24 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
njn, ani do auta sa nevypláca tankovať súčastne aj benzín aj naftu :-)
12.12.2007 09:12 Petr Drlik | skóre: 26 | Bernartice nad Odrou
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Také bych ji nazval pekelna trojka, protože jenom čert ví, jak to funguje. Mě v mandrivě ne.
Kdyby se bříza nestyděla, tak hoří i pod vodou !
12.12.2007 11:40 strby
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
tak pak su asi cert :-)
12.12.2007 09:36 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Je to trochu kruté, ale jako dlouholetý uživatel Slackware si to mohu dovolit: tady byla řeč o porovnávání ruční kompilace s využitím package managementu. Na Slackware žádný package management není, tam je jenom hodně vzdálený náznak, takže tam se nemáte o co připravit.
12.12.2007 10:48 R
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Ale ano - aj ten jednoduchy system umoznuje zistit, ktory subor patri ku ktoremu baliku, balik odinstalovat alebo upgradovat. Aj automaticky (napr. slapt-get). Obcas nieco kompilujem (kedze baliky nie su na vsetko), ale nakoniec namiesto make install pouzijem checkinstall. Tym spravim balik, ktory sice nie je dokonaly, ale aspon nieco.
Vykook avatar 12.12.2007 11:16 Vykook | skóre: 23 | blog: Tomas
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Akorát jsi nakonec použil checkinstall, že? A o tom není řeč :)
Nejde nám o dobro druhých. Nejde nám o bohatství. Jde o čisté opojení mocí.
14.12.2007 08:45 mozog | skóre: 28
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
kdysi jsem ho zkousel, ale to byla nuda ;-)
Jakub Lucký avatar 14.12.2007 09:49 Jakub Lucký | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Málo adrenalinu při odinstalaci? ;)
If you understand, things are just as they are; if you do not understand, things are just as they are.
frEon avatar 12.12.2007 13:44 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
i kdyz se nekdo muze divit, na svem debianu to delam taky tak a zadny problem nemam. rozhodne muj system pohrben neni...
Talking about music is like dancing to architecture.
12.12.2007 16:20 ivan | skóre: 17 | blog: ivan
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
On je ohromny rozdil mezi tim jestli pouzivate autoconf, automace, aclocal, libtool, jako koncovy uzivatel anebo jako vyvojar. Po nekalika letech pouzivani techno nastroju byh si dovolil navrhnout aby se mezi stavy projektu "alha", "beta", "rc0", "testing", "production" pridal a jeste dalsi: "bad joke". Nic vic totiz ten slavny autoconf a teda hlavne libtool neni. Kazdemu kdo to pouziva vrele doporucuji prejit na cmake, scons anebo ant.
13.12.2007 05:48 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Bad joke je doporučit CMake, SCons nebo Ant...bez urážky...
13.12.2007 06:57 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Můžeš to rozvést?
13.12.2007 07:07 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Až se vzbudím. ;-) Teď spím... :-D
14.12.2007 21:37 jk
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Uz ses vzhuru? Taky by me zajimalo co mas proti cmake a ant.
little.owl avatar 15.12.2007 01:04 little.owl | skóre: 22 | blog: Messy_Nest | Brighton/Praha
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Pridavam se k zajemcum o odpoved. Osobne take povazuji GNU Autoconf za bad joke, i kdyz je to standard.
A former Red Hat freeloader.
18.12.2007 21:18 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
++
Táto, ty de byl? V práci, já debil.
12.12.2007 17:42 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
13.12.2007 10:42 Rozik | skóre: 14
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Jednoduchá odpověď: Zkus si třeba zkompilovat novou verzi openssl a přidej k tomu začátečnickou praxi. Výsledkem bude nefunkční SSH a plno dalšího...
-- Zadny uceny z nebe nespad --
12.12.2007 01:42 Ladislav Hagara | skóre: 102 | blog: Ride the Raven
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Svatá trojice už dávno není jediný způsob jak instalovat software ze zdrojových kódů. Řada projektů opouští autotools a přechází například na cmake nebo scons. Také záleží na použitém programovacím jazyku. Programy psané v ruby se překládají a instalují pomocí rake, programy v jave pomoci ant.
Jenom bych doplnil, že existují linuxové distribuce založené na zdrojových kódech. V Source Mage se například zmíněný links instaluje příkazem "cast links-twibright". Zdrojové kódy se automaticky stáhnou, následně se případně upraví, přeloží a aplikace se nainstaluje. Uživatel se o zdrojové kódy vůbec nemusí zajímat.
Aktualizace, oprava chyb atd. tak funguje i bez binárních balíčků. Jediné co musí uživatel spustit je "sorcery system-update".
Podobné je to také v jiných linuxových distribucích založených na zdrojových kódech.
12.12.2007 02:18 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Svatá trojice už dávno není jediný způsob jak instalovat software ze zdrojových kódů.
Jj, třeba takový apt-get source, apt-get build-deb a dpkg-buildpackage, to umí věci. Člověk si skoro může udělat hybrid mezi Gentoo a Debianem ;-)
Quando omni flunkus moritati
msk avatar 12.12.2007 09:13 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
A co uz taky pbuilder ... :)
12.12.2007 09:14 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
programy v jave pomoci ant
V horším případě pomocí mavenu - u antu je jednoduché patchnout properties, nebo build.xml, nebo .ent, když mi vzdoruje, ale maven nade mnou zatím s přehledem vítězí :-|
When your hammer is C++, everything begins to look like a thumb.
12.12.2007 05:55 Käyttäjä 11133 | skóre: 58 | blog: Ajattelee menneisyyttä
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
A není náhodou v případě, že nám nevyhovuje distribuční balík mnohem lepší vzít zdroják toho distribučního, trošku upravit jeho ./configure a vybuildit? Už jen kvůli budoucím nesplněným závislostem... O věcech typu bezpečnostní aktualizace raději ani nemluvím.
12.12.2007 07:59 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Jo, je to lepší, ale to už pak musíš vědět něco o tom jak se dělají balíky ;-)
12.12.2007 08:26 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Když je děláš jenom pro sebe, tak stačí vědět, že se parametry pro configure nacházejí někde v debian/rules nebo ve .spec souboru a že tyto volby občas vynucují další závislosti. :-)
msk avatar 12.12.2007 09:17 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Ano, ale potom este treba vediet, ako ten .spec alebo debian/* vybuildit. Mne napr. trvalo cca mesiac, nez som si prostredie a svoje znalosti pripravil do takeho stavu, ze teraz pripravim a do repository naloadujem balik par prikazmi... Okrem toho taky cdbs to hladanie parametrov pre configure dokaze trosku zkomplikovat, nehovoriac o tom, ze stale viac projektov ( chvala bohu ) opusta autotools a prechadza na nieco modernejsie ( napr cmake ).
12.12.2007 07:28 Marelis
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Pokud máte nainstalovaný checkinstall tak není problém ten balíček vytvořit.

./configure

make

checkinstall
satanatas avatar 12.12.2007 08:27 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: Svatá trojice vs. balíčkovací systém
občas to problém je, zvláště pak když to vůbec nefunguje :+)
12.12.2007 09:29 pj
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
zlatej setup.exe ;-)
12.12.2007 09:51 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
setup.exe dělá standardně stejný bordel jako ta "svatá trojice". :-P
12.12.2007 10:16 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Kdepak. Větší.
12.12.2007 10:23 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Nj, zapoměl jsem na registry...
13.12.2007 12:46 Vinicius
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Bordel vytvoreny svatou trojici rad takhle uklidim:
./configure --prefix=/usr/local
Tam snad patri.
13.12.2007 13:25 David Jaša | skóre: 44 | blog: Dejvův blog
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Však jo. Ale když je tam těch programů a knihoven přibude, tak to je taky bordel. Částečné řešení je instalovat do /opt, do /usr/local cpát jenom symlinky a ty po změnách přegenerovat. Ale bordel to je i tak. :-)
12.12.2007 10:00 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Jak můžete v této souvislosti zmiňovat (a zaměňovat význam) setup.exe to fakt nechápu. Setup.exe je obvykle ekvivalentní tomu co zastává balíčkovací systém, tj. instaluje hotové binárky a nic nekompiluje.
12.12.2007 11:19 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Záleží, jak definujete balíčkovací systém. Jsou systémy, kde kompilace je obvyklou součástí instalace.
12.12.2007 09:01 Petr Drlik | skóre: 26 | Bernartice nad Odrou
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Nevím, kde a co ma být vše nainstalováno(asi úplně všecko), protože klasická instalace (i když budu podle zastánců trojkombinace "lama") z DVD (2005, 2007 nebo 2008)nenainstaluje automaticky takové programy, které mi umožní, abych se bez problemu pokusil zkompilovat nějaký program. Vždy to vyhodí nějakou chybu. Asi by tyto programy měly být v základní instalaci Mandrivy, protože povětšinou nejsou na internetu všechny balíčky v RPM. Když vidím GZ atd., sklesne mi brada a dávám ruce pryč od stahování.

I když je mandriva velice intuitivní, tady někde "soudruzi udělali chybu", chybí ta třešnička na dortu.

Kdyby se bříza nestyděla, tak hoří i pod vodou !
kotyz avatar 12.12.2007 22:01 kotyz | skóre: 25 | blog: kotyzblog | Plzeň
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Je potreba nainstalovat -dev nebo -devel balicky. Nestaci mit napriklad balicek libx, ale je treba mit jeste libx-dev (nebo libx-devel, ruzna distra to pojmenovavaji ruzne) aby slo kompilovat (v tech -dev baliccich sou totiz ty potrebny hlavickovy soubory bez kterych to nepujde). Ono vetsinou kdyz to pri ./configure selze, tak to vypise proc, co chybi a kde se to da stahnout (ne vzdy, ale celkem casto).
Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
12.12.2007 09:45 jkl
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Na linuxu se ze zdrojových kódů kompilovalo a instalovalo odjakživa a nevidím v tom žádný zádrhel. Mám spíš pocit, že problémy s instalováním software se vyskytly až s příchodem nejrůznějších "usnadňovacích utilit".
vogo avatar 12.12.2007 09:54 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Dělat to takhle můžeš i dál, ale kdo si má pamatovat co, kdy, proč a kam, právě proto jsou ty balíčkovací systémy, které ti právě tohle mají hlídat.
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
pavlix avatar 12.12.2007 16:21 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
No... usnadnovaci utility a kompilace jsou dve nezavisle veci.

Muzes rozbalovat binarky a rucne je cpat do systemu, muzes instalovat ze zdrojaku pomoci make install, muzes instalovat binarni balicky a muzes instalovat zdrojovy balicky.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
19.12.2007 10:43 blatnak
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
+2
vogo avatar 12.12.2007 09:51 vogo | skóre: 34 | blog: "Skládat papír"
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
jsem šťastný, že všechen software mám instalovaný z balíčků, pro software, který nebyl v balíčku, jsem si balíčky vytvořil. Moc rád si ten maglajz se sv trojcí odpustím a to že ji někdo používá je jeho problém, ale při troše snahy si lze všechno sám zabalit na všech distribucích, však jak se asi ty zatracené balíčky dělají? :)

A ještě jedna poznámka, sv trojci používám jen když potřebuji nějaký sw a na počítači, na kterém ho chci, nemám možnost jej nainstalovat skrze balíčkovací systém. V tom případě vhodnou kombinací přepínačů pro ./configure zajistím, aby se mi program sestavil a následně nainstaloval do ~/.usr/.
Nejsem paranoidní, ale to ještě neznamená, že po mě nejdou.
12.12.2007 10:07 Robert Krátký | skóre: 94 | blog: Robertův bloček
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém

Vlákno o překladech, přejímání a dalších věcech souvisejících s očekáváním čtenářů bylo přesunuto do samostatné diskuze, protože bylo pod tímto článkem off-topic. Máte-li zájem v debatě pokračovat, přispívejte prosím do osamostatněné diskuze.

xsubway avatar 12.12.2007 13:00 xsubway | skóre: 13 | blog: litera_scripta_manet
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
od doby co pouzivam debian, tak prubeh kompilace ze zdrojovych kodu probiha vetsinou nekterym z techto dvou moznosti: ;-)
12.12.2007 14:42 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Akorát ta druhá možnost většinou vede na nekorektní balíček (což většinou nevadí, protože pro vlastní použití to pravděpodobně problémy nezpůsobí)
Quando omni flunkus moritati
12.12.2007 13:57 ondracch | skóre: 19 | blog: Mozková kreč
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
Možná by neškodilo popsat, jak funguje makefile a podobně.
Proč myslíš, že nemůžeš žít jinak? Pořád Tvořím...
MaT avatar 13.12.2007 22:33 MaT | skóre: 28
Rozbalit Rozbalit vše Re: Svatá trojice vs. balíčkovací systém
Odpovědět | Sbalit | Link | Blokovat | Admin
No nevím, myslím, že v tom článku měly být nějak více zdůrazněné i nevýhody tohoto postupu oproti použití balíčkovacího systému. Jako třeba že se pak takové věci dost blbě odinstalovávají - pokud člověk neví, kde všude se to zahnízdí. Prostě dělá to v systému bordel. Trochu se to tady pak zmiňovalo až v diskusi, ale v té už je toho tolik (a tolik opakujícího se), že to nikdo celé třeba ani číst nebude a pak to důležité, co mělo být rovnou v článku, zapadne. :-)
Open source software for open minded people. :-)
13.12.2007 23:09 Pavel Píša | skóre: 18 | blog: logic
Rozbalit Rozbalit vše Make install a DESTDIR
Odpovědět | Sbalit | Link | Blokovat | Admin
Jen bych rád připomněl jednu věc, kterou možná méně zkušení uživatelé nepoužívají, a přitom je snadná a chrání systém proti nechtěnému poničení při použití ./configure make make install Všehny projekty založené na Automake a i na současném CMake podporují proměnnou DESTDIR. Pokud je tedy balík vybuildován pro cílový adresář/prefix /usr /usr/local nebo /opt/jméno_balíku, tak je vždy rozumné volat make install s parametrem DESTDIR

make DESTDIR=/cesta/do/prázdného/adresáře install

V cílovém adresáři se vytvoří kompletní struktura instalovaných souborů a adresářů od cílového rootu včetně prefixů. Je pak možné zkontrolovat, co balík po skopírování na root ("/") přemaže a kam se naskládá. Checkinstall tedy není příliš pro dobře udělané projekty potřeba a jen zavádí další potenciální zdroj chyb. Pozor, různé rádoby moderní vymyšlenosti DESTDIR nezvládají a jsou tedy nebezpečné. Další zásada je buildovat out of source directory

tar -xjf pkgname-x.y.z.tar.gz cd pkgname-x.y.z mkdir _build ../configure --prefix=/opt/pkgname make make DESTDIR=/test-install install

Ale to je již asi mírně složitější pro začátečníky a množství špatně udělaných balíčků toto zacházení nezvládne. Bohužel většina "vylepšení" balíčků pro balíčkovací systémy typu Debianu nepodporuje pořádně build out of source directory a zavádí vlastní nekoncepční řešení takže není možné provést build pro více architektur bez zašpinění rozbalených a quiltovaných zdrojáků.
13.12.2007 23:15 Pavel Píša | skóre: 18 | blog: logic
Rozbalit Rozbalit vše Re: Make install a DESTDIR
Oprava formátování tar -xjf pkgname-x.y.z.tar.gz
cd pkgname-x.y.z
mkdir _build
cd _build
../configure --prefix=/opt/pkgname
make
make DESTDIR=/test-install install
14.12.2007 19:07 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Make install a DESTDIR
tak je vždy rozumné volat make install s parametrem DESTDIR

Přesněji: proměnnou, ne parametrem.

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.