Log in


Forgot your password?
prijatelji LUGoNSa
gnu.gif
linuxzasve.jpg
hulk.jpg
zextras_logo.png
 
You are here: Home / Uputstva / Gentoo/Exherbo / Paludis HOWTO

Paludis HOWTO

by milobit last modified Mar 23, 2008 05:45 PM
Paludis je alternativni paket-menadžer za Gentoo koji u potpunosti zamenjuje Portage.

Ovaj HOWTO će pokušati da objasni kako se radi sa paket menadžerom Paludis. Ispravljanje grešaka kao i sugestije su više nego dobrodošle. Ovo uputstvo je bazirano na trenutno aktuelnoj verziji sys-apps/paludis-0.24.2. Detaljna upustva mogu da se pogledaju na http://paludis.pioto.org/


1. Šta je Paludis?

Paludis je alternativni paket menadžer za Gentoo koji u potpunosti zamenjuje Portage. Deinstalacija Portage-a još uvek nije preporučljiva a nije ni moguća jer paludis (još uvek) koristi neke informacije iz Portage-a. Vođa projekta i tvorac Paludis-a je Ciaran McCreesh alias ciaranm, bivši Gentoo developer i odličan programer. Zbog neprimerenog ponašanja i napada na na druge sa "devs" i "user" liste oduzet mu je status Gentoo developera. Uprkos tome on je aktivniji nego ikada. Ciaran poseduje odlično znanje o Gentoo-u, Portage-u i Ebuild-ovima, (i jedan je od inicijatora http://devmanual.gentoo.org) ubeđen je da Portage kod sve više postaje uvrnutiji i beskoristan. http://paludis.pioto.org/faq.html#why: "Portage osnova je previše pokvarena da bi bila popravljena. To je veliki nered špageti proceduralnog koda bez dizajna koji koji stoji iza tog koda.

Zbog toga je Paludis kompletno od početka razvijen i pisan je u C++, upotpunjen takozvani hooks (nešto kao plug-in, ali ne baš). To su skripte i pomoćni programi koji omogućavaju dodatnu funkcionalnost. Za one koji se razumeju u bash skripte kao i u shell programiranje neće imati nikakavih problema i sa lakoćom će moći da napišu sopstveni user-hook. Više informacija o ovome možete pročitati na http://paludis.pioto.org/hooks.html.

Zašto je pisan u C++ programskom jeziku a ne nekom skript jeziku veće portabilnosti? Prvo, ceo kod je poprilično portabilan (provereno radi na Gentoo/FreeBSD platformi, ali zbog zavisnosti - sandbox - nije baš savršen). Drugo, čovek koji izjavi sledeće ne haje nešto puno za skript jezike, siguran sam. http://paludis.pioto.org/faq.html#cplusplus: "Zašto C++? Zato što nemamo dovoljno vremena i ljudi da bismo pisali u C-u."


2. Instalacija Paludis-a

Pošto se Paludis još uvek nalazi u testing grani korisnici koji koriste Gentoo stable moraju da "oslobode" Paludis kao i neke od zavisnosti preko package.keywords. Ovo je primer za x86 ahitekturu:

# echo "sys-apps/paludis ~x86" >>/etc/portage/package.keywords
# echo "virtual/c++-tr1-functional ~x86" >>/etc/portage/package.keywords
# echo "virtual/c++-tr1-memory ~x86" >>/etc/portage/package.keywords
# echo "virtual/c++-tr1-type-traits ~x86" >>/etc/portage/package.keywords


Ko koristi ~arch, njemu to naravno nije potrebno da uradi. Posle toga dolazi instalacija paludis paketa:

# emerge paludis


Kad smo ovo odradili potreban nam je još samo jedan korak i to da migriramo sve sa Portage-a na Paludis. Kako se to radi opisano je na http://paludis.pioto.org/migration.html. Najjednostavnija varijanta je koristiti skript portage2paludis.bash.

Kada se pokrene ovaj skript on u principu postavlja pitanja na koja se skoro po pravilu odgovara sa <Enter>. Skript importuje Portage promenljive u direktorijum /etc/paludis.

Pošto je skript odradio sve što je bilo potrebno ostaje još da se odradi par sitnica. Naime direktorijum gde paludis kompajlira sve je /var/tmp/paludis, ali ova skripta ga neće podesiti za Vas. Pokrenite sledeće 4 komande da biste uradili to ručno:

# mkdir /var/tmp/paludis
# chgrp paludisbuild /var/tmp/paludis
# chmod g+rwx /var/tmp/paludis
# chmod +s /var/tmp/paludis

Kad odradite ove komande ništa Vas više ne sprečava da nesmetano koristite paludis.

3. Konfiguracija

Za detaljne informacije pogledati: http://paludis.pioto.org/configuration. Skript portage2paludis.bash u principu odrađuje posao kako treba ali ja ću ipak za svaki slučaj prikazati i moju konfiguraciju, pošto smatram da je živi primer bolji od 1000 reči. Ovo je naravno samo jedan primer i on može da se podesi i promeni prema potrebama korisnika. Važno: Ako kopirate ove konfiguracione fajlove i koristite copy&paste opciju, gledajte da na kraju svakog reda NE ostane prazno mesto. Paludis to nikako ne voli i buni se protiv toga (ko zna bash ili C programiranje, znaće zašto posle "\" mora da dođe novi red odmah, ko ne zna, neka prihvati za sada činjenicu zdravo za gotovo).

3.1 bashrc

Počnimo sa /etc/paludis/bashrc. U ovoj datoteci se nalaze CHOST, CFLAGs, CCACHE kao i paketi koji nisu položili src_test.
/etc/paludis/bashrc:

export CHOST="x86_64-pc-linux-gnu"

export MAKEOPTS="-j2" # Ako imate 2 procesora
export SKIP_FUNCTIONS="test"
export PALUDIS_USE_SAFE_RESUME="yes"
export CFLAGS="-O2 -march=nocona -mtune=nocona -fomit-frame-pointer -frename-registers -momit-leaf-frame-pointer -pipe"
export CXXFLAGS="${CFLAGS}"


3.2 keywords.conf

Ova datoteka je ekvivalentna sa Portage datotekom /etc/portage/package.keywords. U njoj mogu da se upišu paketi koji služe za testiranje, recimo ako koristite Gentoo-stable granu a hteli bi da probate neki paket koji se još nalazu u testing grani.
/etc/paludis/keywords.conf:

*/* amd64 ~amd64


Kao što se iz priloženog može videti ja koristim amd64 granu i to testing.
amd64 znači stable grana a ~amd64 testing.

Da ne bi bilo zabune evo prikaza kako to izgleda kad koristite stable granu.
/etc/paludis/keywords.conf:

*/* amd64

app-admin/eselect-news ~amd64
app-paludis/paludis-hooks ~amd64
app-paludis/paludis-hooks-collision-protect ~amd64
app-admin/eselect-paludis-hooks ~amd64
app-paludis/paludis-hooks-undo-prelink ~amd64
app-paludis/paludis-hooks-update-eix ~amd64
app-paludis/etc-paludis ~amd64
app-portage/portage-utils ~amd64


3.3 licences.conf

/etc/paludis/licences.conf:

*/* *


Ovim je omogućeno korišćenje svih licenci. Ako neko želi da filtrirate licence, neka pogleda sledeći link: http://paludis.pioto.org/configuration.html


3.4 mirrors.conf

/etc/paludis/mirrors.conf:

# mirrors.conf
# This file created by portage2paludis.bash


Ova opcija kod mene je prazna jer je ne koristim. Ako ste kojim slučajem koristili mirrorselect paket, koji vam pomaže da za vašu konekciju odaberete tri najbrza mirror-a koja će te koristiti onda će vaš mirrors.conf posle migracije izgledati ovako.
/etc/paludis/mirrors.conf:

*  ftp://pandemonium.tiscali.de/pub/gentoo//distfiles http://mirrors.sec.informatik.tu-darmstadt.de/gentoo//distfiles ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo/distfiles


3.5 package_mask.conf

Packages-mask.conf je ekvivalentan /etc/portage/package.mask. I služi za masikranje neželjenih paketa. U mom slučaju to su xorg-server i novi thunderbird koji kod mene ne rade kako bi trebalo.
/etc/paludis/package_mask.conf:

=x11-base/xorg-server-1.3.0.0::gentoo
=mail-client/mozilla-thunderbird-2.0.0.0.0::gentoo


3.6 package_unmask.conf

Ova datoteka je ekvivalenta /etc/portage/package.unmask i kao što joj ime i samo kaže služi za demaskiranje paketa.
/etc/paludis/package_unmask.conf:

app-emulation/virtualbox


3.7 use.conf

Ova datoteka je ekvivalentna USE u /etc/make.conf i fajlu /etc/portage/package.use.
/etc/paludis/use.conf:

*/* -* X a52 aac aalib acpi aim aiglx alsa ao apache2 arts bash-completion \
berkdb bluetooth bzip2 cairo cli cddb cdparanoia cdr clamav cracklib \
crypt custom-cflags cups dbus dlloader dpms directfb doc dri dvd dvdr \
dvdread encode exif expat fam fastcgi fbcon ffmpeg firefox flac gif \
glut glitz gnome gnustep gphoto2 gpm gps gtk2 hal icq ieee1394 \
imagemagick imap imlib ipv6 inquisitio ithreads jabber javascript jbig \
jpeg jpeg2k kde ldap lesstif libcaca libedit libwww lirc logrotate \
lm_sensors mad maildir matroska mmx mng motif mp3 mpeg mplayer multilib \
ncurses nls ntpl nsplugin ogg opengl oss paludis_hooks_ask pcmcia pcntl \
pcre pdf perl plotutils png posix postgres pppd ppds python \
qt3 qt4 quicktime rdesktop readline ruby samba scanner sdl slang \
speex spell sse2 ssl svg svga symlink tcl tcpd tetex theora threads \
tiff truetype truetape-fonts rtsp udev unicode usb vcd vhosts \
vim-syntax vorbis wifi win32codecs wmf wxwindows xcompsite xml xmlrpc \
xosd xpm xprint xsl xv xvid async atm avi console pam type1-fonts pic \
wma xft bitmaps-fonts john transcode spell slang optimize glibc-omitfp \
glsa gpgme iconv kqemu nptl nptlonly zip vim-pager vim-with-x tk acl \
xorg gcj objc real

*/* INPUT_DEVICES: -* keyboard mouse synaptic
*/* VIDEO_CARDS: -* radeon vesa fbdev fglrx
*/* SOUND_CARDS: -* snd-hda-intel

x11-libs/fltk2-svn doc
media-gfx/gimp -svg
net-im/gaim gtk
dev-libs/pwlib ldap
net-p2p/amule gtk
app-text/poppler-bindings gtk
net-p2p/bittorrent gtk
net-ftp/gftp gtk
media-libs/sdl-mixer mikmod
x11-libs/fltk-svn doc
net-nds/openldap -ipv6 berkd
www-client/mozilla-firefox java
net-misc/openssh -ldap
net-misc/kvpnc cisco
media-video/mplayer v4l v4l2 live livecd radio rar rtc gtk
net-www/mplayerplug-in gtk mplayer-bin wmp divx gmedia
net-wireless/madwifi-ng injection


3.8 /etc/paludis/environment.conf

U ovom fajlu je moguće podesiti neke od opcija, kao što je lokacija world fajla (obavezno), na sledeći način:

world = /var/db/pkg/world

Ova direktiva govori paludis-u gde se nalazi world fajl. Pošto portage taj fajl čuva u /var/lib/portage, ovim se omogućava da svoj world fajl držite na bilo kojoj lokaciji koja se Vama učini zgodna (ali zašto da ne stoji tamo gde i informacije o paketima - /var/db/pkg?).


3.9 /etc/paludis/repository/ (direktorijum)

Paludis se snalazi sa svim mogućim vrstama repozitorijuma, što znači da vam layman više nije potreban. Ovo je mesto za vašu konfiguraciju. Minimum dva fajla treba da se nalaze u ovom direktorijumu a to su gentoo.conf i installed.conf. One će biti automatski napravljenje od strane portage2paludis.bash skripte.


3.9.1 gentoo.conf

/etc/paludis/repositories/gentoo.conf:

location = ${ROOT}/usr/portage
sync = rsync://rsync.europe.gentoo.org/gentoo-portage
#sync = rsync://mirrors.sec.informatik.tu-darmstadt.de/gentoo-portage
sync_options = --exclude-from=/etc/paludis/sync.exclude
profiles = ${ROOT}/usr/portage/profiles/default-linux/amd64/2007.0
distdir = /usr/portage/distfiles
format = ebuild
names_cache = /var/empty
write_cache = /var/empty

gentoo.conf je oficijalna Portage grana kako što je već poznajete. Mesto je po default-u naravno /usr/portage što može i da se promeni kao na primer u /var/paludis/repositories/gentoo. Paludis će pri sledećem sinkovanju sve da upiše u taj direktorijum, što ebuilds tako i distfiles s tim da "distdir" mora da pokazuje na istu putanju. Ja sam ostavio sve kao što je po default-u jer mi to pruža mogućnost, u slučaju da imam problem sa paludis-om, da i dalje mogu da koristim portage. U ovoj datoteci se isto određuje i profil koji će se koristiti. Kada promenite profil pametno je da odradite jedan update, ako je potrebno, svega.

U sysc.exclude stoji šta se pri sinkovanju neće dirati.

# echo "overlays" > /etc/paludis/sync.exclude
Ovim smo osigurali da pri sinkovanju direktorijum overlays nece biti obrisan.
# paludis -i --dl-reinstall if-use-changed everything


Opcija "--dl-reinstall if-use-changed" je uvek potrebna kada se menjaju USE flegovi, što je kod menjanja profila neki put slučaj.


3.9.2 installed.conf

/etc/paludis/repositories/installed.conf:

location = ${ROOT}/var/db/pkg/
format = vdb
names_cache = /var/empty
provides_cache = /var/empty

Pomoću ovog flaja se "govori" Paludis-u gde se nalaze informacije o instaliranim paketima. Datoteke "location" i "format" ne smeju da se menjaju zbog kompatibilnosti.


4. Rad sa Paludis-om

Pošto smo uspešno završili sa konfiguracijom prelazimo na sinhronizaciju kompletnog repozitorijuma.

# paludis --sync

ili

# paludis -s

Podrazumevani direktorijum gde Paludis kompajlira stvari je /var/tmp/paludis. Ako kojim slučajem ovaj direktorijum ne postoji obavezno ga treba napraviti pre nego sto se krene sa instalacijom paketa. Mesto kompajliranja naravno može i da se promeni putem promenljive "buildroot" u gentoo.conf.

Pre toga ne bi bilo loše pogledati da li je i sa kojim USE flag-ovima paludis kompajliran. Ovo naravno može da se uradi i prvi put sa emerge-om. Trenutno postoje sledeći USE flag-ovi:

Use flags: bash-completion contrarius cran doc glsa inquisitio pink portage python qa ruby vim-syntax visibility zsh-completion



4.1 Osnovne komande Paludis-a

Kao što i sam naslov kaže ovde ću opisati najvažnije naredbe Paludis-a. Kompletna referenca može da se pogleda sa man paludis ili na na web strani paludis-a http://paludis.pioto.org/man-paludis.html U svim primerima koristiću "vim" kao paket.


Code:

# paludis -q vim

-q , --query | Informacije o paketu (Ime, kategorija, repozitorium, verzije koje mog da se instaliraju, da li je paket instaliran, Homepage, opis, USE-Flags)


Code:

# paludis -qD vim

-D , --show-deps | pokaži zavisnosti


Code:

# paludis -qM vim

-M , --show-metadata | pokaži meta podatke (dodatni podaci o paketu)


Code:

# paludis --info

Pokazuje informacije o sistemu. Na žalost paludis još uvek ne pokazuje sve informacije koje pokazuje "emerge --info" na primer ne pokazuje USE-Flags.


Code:

# paludis -s

-s , --sync | sinhronizacia repositorijuma.syncen.


Code:

# paludis -i vim

-i , --install | Instalira paket(e). Sa korišćenjem opcije -p se samo pokazuje šta bi bilo urađeno. Opcija -1 (ili "--preserve-world") ne upisuje paket u world-file.


Code:

# paludis -i world

update-uje world, preporučljivo koristi i -p opciju da se vidi šta sve paludis namerava da uradi. Promene USE-Flag-ova na određenjim paketima se odmah preuzimaju, dok globalne promene tek sa


Code:

# paludis -i --dl-reinstall if-use-changed everything

Isto ako se menja profil (u /etc/paludis/repositories/gentoo.conf) je ova naredba najbolji izbor.


Code:

# paludis -pi --show-reasons summary everything  ## ili ime paketa

Pokazuje zašto će paketi biti (de)instalirani.


Code:

# paludis -u vim

-u , --uninstall | deinstalira paket(e)


Code:

# paludis --uninstall-unused

Paketi koji se ne koristi biće deinstalirani. Ovo je jedna mogućnost na koju su svi već dugo čekali. Prema rečima Maintener-a ova opcija radi mnogo bolje i temeljnije od "emerge --depclean". Uprkos tome preporučljivo je prvo koristiti -p opciju i videti šta sve Paludis planira da briše. Zavisnosti mogu da se obrišu pri svakom korišćenju --uninstall.


Code:

# paludis --uninstall --with-unused-dependencies vim

Paket(e) zajedno sa nekorišćenim zavisnostima obrisati.


Code:

# paludis --uninstall --with-dependencies vim

Obriši i pakete koji zavise od vim paketa


Code:

# paludis --uninstall --all-versions vim

Obriši sve verzije vim paketa. Ovde isto važi pravilo prvo sve proveri sa opcijom -p.


Code:

# paludis -i --dl-reinstall always everything

Ekvivalentno "emerge -e world". Svi paketi će biti ponovo kompajlirani. Postoji mogućnost da se to ograniči recimo samo na sistem. http://paludis.pioto.org/faq.html#removeunneeded

Ova lista bi mogla da bude još duža, ali za osnovne komande i svakodnevni rad mislim da je dovoljno. Sve sto vas više zanima pogledajte u man stranici. Ako neko misli da još nesto treba da se doda slobodno neka me kontaktira.


4.2 Problemi

Ko prvi put uradi world-update sa Plaudis-om moguće je da će se malo i razočarati. Najverovatnije će dobiti upozorenja ili neke greške. Ovo nije do Paludis-a nego do Portage-a. Portage je tolerantniji što se tiče grešaka i za sobom neki put ostavlja dosta nekonzistentnosti. Takodje su i greške u Ebulid-ovima tolerisane i time se provlačio i "prljavi" način programiranja. Paludis je mnogo strožiji po ovom pitanju i već se buni ako pronađe "missing whitespace" u Ebulid-u. Lično sam primetio par problema kao što je stalno zahtevanje par paketa koji traže Down ili Upgrade. Više o tome pogledajte na http://paludis.pioto.org/faq.html#downgrades. Generlano rešenje za ovakve stvari još uvek ne postoji. Ali mogu sa sigurnošću da tvrdim da će ovi problemi nestati ukoliko koristite samo Paludis. Paralelno korišćenje malo emerge malo Paludis nije preporučljivo. Više o ovome pogledajte na http://paludis.pioto.org/migration.html#coward. Paludis trenutno još uvek nema mogućnost da radi sa binarnim paketima kao što to radi emerge, na primer "emerge --buildpkg/--usepkg". Ali će se to jako brzo promeniti. :o) Ciaranm je napisao: "Binarni paketi. Specijalno, pravi binarni format paketa i rukovanje binarnima paketima na pravi način. Ovo je skoro urađeno, i biće implementirano pre 1.0 (stalno govori "u sledećem izdanju", ali onda završim radeći na nekoj drugoj opciji paludis-a -- često izdavanje pomaže svima)."


5. Paludis-extras

Paludis exstras je Third-Party-Overlay i NE PRIPADA oficijalnom paketu. Ciaranm se nije baš oduševio načinom na koji ljudi prave hooks skripte, što se može videti na http://ciaranm.org/show_post/109.

Alati koji su u paludis-extras su sledeći:
-- gentoolkit (za Paludis)
-- etc-paludis (zamena za etc-update)
-- portage-utils
-- module-rebuild (za Paludis)
-- binutils-config (za Paludis)
-- eselect-news (za čitanje vesti, Paludis-news )

Ova lista nije kompletna za sve opširnije informacije pogledati na http://drzile.dyndns.org/index.php?page=paludis_scripts.


6. Linkovi

Za kraj par najvažnijih linkova na ovu temu:

http://paludis.pioto.org/
http://gentoo-wiki.com/HOWTO_Use_Portage_alternative_-_Paludis
http://drzile.dyndns.org/index.php?page=paludis_scripts
http://ciaranm.org/ Ciaran McCreesh' Webblog
http://ciaranm.org/show_post/95 Ciaranm's Paludis 'Killer Feature' Blogbeitrag
http://wiki.linuxquestions.org/wiki/Paludis
https://lists.berlios.de/pipermail/paludis-user/
http://forums.gentoo.org/viewtopic-t-518298-start-0-postdays-0-postorder-asc-highlight-.html
http://forums.gentoo.org/viewtopic-t-534681.html
http://forums.gentoo.org/viewtopic-t-557649.html


IRC
irc.freenote.net #paludis
irc.freenote.net #paludis-extras


Related content
Paludis - napredne funkcije

Document Actions