Pekne, ale kdo ma Debiana, tak tohle vsechno zna a vetsinu, ktera ho nema, to nejspis moc zajimat nebude, protoze od sve oblibene distrubuce tezko odejde jen kvuli balickovacimu systemu.
Co by ctenare asi mohlo zajimat vic je vyroba debianich balicku - vetsina lidi co znam to neumi. Pritom je to vyborna vec, pac kdyz si neco sami kompilujou tak se to frka do /usr/local a pak je v tom docela gulas. Neni nad to, mit i vlastni programy prehledne odstranitelny/zobrazeny pod dselectem nebo pres dpkg.
Nemas pravdu. Ja jsem od RH odesel prave kvuli spatne sprave rmp. Debian me nadchl svym "apt-get". Jiny duvod jsem nemel. Debian ma sice jinou adresarovou strukturu, ale nepripada mi ani lepsi ani horsi nez u RH.
Kdo ma Debiana, tak vyrobu baliku zna. Marcel v diskuzi k minulemu clanku od debianich baliccich prislibil, ze se navod na vyrobu baliku objevi.
Tak k tomuhle se připojuju. Balíčkovací systém byl jedním z hlavních důvodů, proč jsem utekl od RH. Časem se k tomu přidaly i problémy s licencí (co poslední dobou RH dělá je minimálně hodně podivné) a štvaly mě i překombinované skripty, ale balíčky byli problém číslo jedna.
Dneska mám Debžu a jsem spokojený na 100%.
Díky za seriálek. Peter
Ještě mám dotaz: Jak můžu jednoduše vypsat informace a názvy souborů i s cestou v balíčku, který si určím a který NENÍ nainstalovaný? Chci si udělat do jednoho souboru seznam všech souborů v distribuci, abych, když mi při překladu něco zařve: "Chybí libněco.so", mohl grepem ten soubor lokalizovat.
Díky za radu. Peter
"Distribuce" - to je de-facto souhrn balicku a velmi maly objem startup a konfiguracnich scriptu. Jadro mame vsichni ze stejneho zdroje (ikdyz nekdo opatchovane z distribuce - viz remote vulnerability v RH), a software v tech baliccich je take ze stejneho zdroje (vyjma patchu).
Co dela distribuci distribuci, je tedy PRAVE zmineny balickovaci system + instalacni|konfiguracni|spousteci scripty.
Ulohou balickovaciho systemu je, aby system zustaval konzistentni, musi resit problemy v zavislostech sw, zarucit spravnost obsahu etc.
A tady Debian (jeho balickovaci system) nabizi spoustu unikatnich vlastnosti, ktere jine distribuce nemaji, nebo je nyni teprve pracne a obcas trochu neumele napodobuji.
IMHO distribuci tvoří hodně věcí. Nejen balíčkovací systém, ale i lidé, kteří balíčky připravují, jak píšete. Dále je to release management, bezpečnostní politika, QA, a vůbec celková filozofie distribuce. Někomu se líbí, když je něco v distribuci tak, jiný zase oceňuje, když je to jinak. Distribuce je prakticky věc, která vám z jádra, GNU a nepřehledného množství SW, který najdete různě po Internetu, vytvoří operační systém, který lze používat, ale také vám poskytne zázemí k jeho provozu. Když se na to podívám z tohoto pohledu, tak je mi v podstatě jedno, jaké jádro v operačním systému mám (třeba Linux či *BSD), ale potřebuji pracovat s distribucí, která mi vyhovuje.
--mk
Myslim, ze se hluboce mylite...
Podle mne malokoho zajima jak si delat vlastni balicky.
Pouzivam MDK, a velice posilhavam po Debianu.
Co je pro mne dulezite, je propracovanost, hodne vlastnich udelatek a snadnost obsluhy ... a samozrejme tuhost distra.
balickovaci/istalacni system, povazuji za jednu z peti veci, ktere zozlisuji jako dulezite.
POZN: jen tak dal autore, sleduji Vas.
PJ
Drobnej problem je v tom, ze balicek muze zaviset na necem jako mail-transport-agent. Takovy balicek primo neexistuje ale poskytuji ho vsechny mailservery. Jak toto chcete zobrazit?
Jinak v praxi obvykle staci apt-get -s install balicek a hned vidite, co se bude doinstalovavat.
k debianu jsem se dostal nedavno, driv rh. prvni dojmy z dpkg: rpm rulez. napr:
-- "dpkg -i --no-act balik" nevypise problemy zavislosti a bez "--no-act" i presto, ze problemy vypise, nakopiruje obsah baliku do systemu (fakt kvalitni)
-- chybi mi obdoba "rpm -qa". "dpkg -l" vypisuje zbytecnosti (hlavne ta hlavicka, da se to zakazat?).
v posledni dobe jsem nemel dost casu zkoumat vsechny vychytavky dpkg, nechci ho tedy zbytecne hanet, rpm mi vsak prijde pouzitelnejsi (mozna jsem si na nej moc zvykl).
Mate pravdu s tim --no-act.
Je to chyba a je reportovana, zatim ji nikdo neopravil.
To ze se to nakopiruje do systemu je chtene.
Kdyz chci instalovat balik, tak uz ho mam v systemu, akorat je tam flag, ze neni koreknte doinstalovan, kvuli zavislostem. Takze doinstaluju programy, na kterych zavisi a ten puvodni balik se automaticky dokonfiguruje. Kdyz teda zadam neco jako dpkg --configure --pending.
Jestli si dobre pamatuji, rpm -qa vypise informace o vsech nainstalovanych baliccich. Misto rpm -qal je mozne pouzit pouzit
dpkg --get-selections a misto rpm -qai je mozne pouzit neco jako
dpkg --get-selections |sed 's/ *install//'|xargs dpkg -L
Pro ziskavani informaci o vsech DOSTUPNYCH baliccich slouzi krome dpkg jeste napr. apt-cache, dlocate, grep-avalaible a dalsi.
Mam mensi problem - na jednom serveru nam odechazel divne / disk, podle vseho mel nejak mel spatne FS zaznamy, po zformatovani na xfs se tvari v pohode. Poroblem je, ze se z neho obcas ztacely soubory, a to i z takovych adresaru, jako je /usr/lib. Potreboval bych prikaz, ktery by prosel vsechny nainstalovane baliky, zjistil, jestli jsou vsechny jejich soubory fyzicky na disku (pokud by zkontroloval i delku, nezlobil bych se), a pripadne chybejici dotahl z netu/CDcka. Neco jako dpkg --check-all-files --install-missing-one:). Existuje neco takoveho?
Deb samosebou ve srovnani s rpm, ktere jsem pouzival pred tim, rulez. A tenhle clanek je dobry minimalne v tom, ze me rekl, ze deb baliky jsou vlastne ar.
Určitě bych zkusil debsums. Problémem ale je, že ne všechny balíčky mají kontrolní součty. Takže pak bych zkusil ještě něco jako:
for I in $(dpkg -L `COLUMNS=240 dpkg -l | grep '^.i' | cut -d " " -f 3` | grep '^/' | sort -u); do ls -d "$I" > /dev/null; done
A balíčky s chybějícími soubory pak přeinstalovat pomocí apt-get --reinstall install.
--mk
Ten treti prikaz nie je % make checkinstall, ale % checkinstall - program, ktory pretazi dynamicke kniznice, zavola make install a zistuje, ze ktore subory sa snazi make install kopirovat do systemu. Potom sa este interaktivne popyta na popisky rpm/deb balicka a nakoniec ho vyrobi a zapise do rpm/deb databazy informacie o tom, ze bol nainstalovany.
Mozno som sa v nejakom detaile zmylil, ale v principe to asi tak funguje.
./configure
make
checkinstall
Ano, tak to je. Doporucuju jeste male vylepseni: vyuzit parametr "--prefix" skriptu "configure" pro specifikaci instalacniho adresare. Jinak se totiz instaluje do adresare /usr/local, coz muze byt nekdy i nevhodne, napriklad kdyz mate sdilene adresare pro KDE v adresari /usr, a ne v /usr/local.
./configure --prefix=/usr
make
checkinstall