POLDEK(1)

NAZWA
poldek - program pomocniczy do zarzXdzania pakietami RPM

STRESZCZENIE
poldek [--source=XRODXO ...] [OPCJA...] [PAKIET...]

poldek [--source=XRODXO ...]

UWAGA
Ten dokument dotyczy serii 0.18.x i jest w duXej czeXci zdezaktualizowany, aczkolwiek nadal moXe byae przdatny dla uXytkownikow nie znajXcych angielskiego.

Aktualna dokumentacja jest dostepna w jezyku angielskim, w postaci stron podrecznika systemowego man ('poldek' oraz 'poldek.conf') oraz w postaci podrecznika w formacie Info oraz HTML.

OPIS
Poldek jest programem do zarzXdzania pakietami RPM. Jego podstawowe cechy sX podobne do kaXdego wspoXczesnego programu do uaktualniania pakietow, jak apt-get - program pobiera informacje o pakietach z indeksu (domyXlnie packages.dir.gz) i pozwala na ich instalacje, uaktualnienie lub usuniecie.

Program pracuje w dwoch trybach: wsadowym (w uXyciu podobny do apt-get) oraz interaktywnym (interactive). Tryb interaktywny stanowi interfejs readline z autouzupeXnianiem linii polecen~ oraz ich historiX, podobny do trybu powXoki moduXu CPAN perla.

Zdalne pliki sX pobierane przez samego poldka (wewnetrzny klient FTP/HTTP) bXdX poprzez zewnetrzne programy (domyXlnie nieskonfigurowane, patrz "PLIK KONFIGURACYJNY").

Podstawowe tryby pracy poldka to:

•   Buduj indeks pakietow

•   Uaktualniaj indeks pakietow

•   Weryfikuj zestaw pakietow

•   Instaluj system od zera

•   Uaktualniaj caXy system

•   Instaluj lub uaktualniaj wybrane pakiety

•   Dziel zestaw pakietow w podzestawy o ustalonym rozmiarze

  Tryb Interaktywny
Tryb interaktywny uzyskujemy uruchamiajXc

    poldek [OPCJA...] --shell [-f]

co przeXXcza do interfejsu readline. BedXc w linii polecen~ wpisz 'help', a reszta powinna wyjaXniae sie sama.

[ciXg dalszy nastXpi...]

XRODXA PAKIETOW
XrodXa pakietow mogX byae okreXlane w pliku konfiguracyjnym poprzez parametr source (patrz "PLIK KONFIGURACYJNY"), lub z linii polecen~ nastepujXcymi opcjami:

-s, --source XRODXO

--sdir KATALOG

--shdrl XRODXO

gdzie XRODXO jest lokalnX XcieXkX bXdX URL-em. Z --source uXywany jest natywny plik indeksu (packages.dir.gz); z --sdir jest przeglXdany katalog docelowy, zamiast czytania pliku indeksu - wersja ta powinna byae uXywana jedynie do katalogow lokalnych. Ostatnia --shdrl moXe byae uXyta do pobrania informacji o pakiecie z pliku z czystymi nagXowkami RPM (znanym jako hdlist).

Typ XrodXa moXe byae ustawiony rownieX przez opcje type, patrz "PLIK KONFIGURACYJNY".

PrzykXady:

$ poldek -s /katalog/z/RPMS/ [OPCJA...]
$ poldek -s /katalog/z/RPMS/packages.dir [OPCJA...]
$ poldek -s ftp://ftp.ala.ma.kota/RPMS/
$ poldek --sdir=/ala/RPMS
$ poldek -s rsync://rsync.ala-ma-kota.com/RPMS/
$ poldek --shdrl=http://ziut/base/hdlist

JeXli indeks pakietow i pakiety sX przechowywane w innych lokalizacjach, wtedy powinna byae uXyta opcja:

-P, --prefix PREFIKS

do wskazania lokalizacji pakietow, np.:

$ poldek -s /tmp/packages.dir.gz --prefix=/cdrom/RPMS/ -s ... --prefix=...

JeXli XrodXo jest skonfigurowane z nazwX (patrz "PLIK KONFIGURACYJNY"), wtedy moXe byae wybrane przez -n, --sn NAZWA-XRODXA, np.:

$ poldek --sn pld ...

Aby uzyskaae liste wszystkich skonfigurowanych XrodeX uXyj opcji -l, --sl, np.:

$ poldek -l

nest         ftp://ftp.pld.org.pl/dists/nest/PLD/i686/PLD/RPMS/  (noauto)
nest-test    ftp://ftp.pld.org.pl/dists/nest/test/i686/  (noauto)
pld          ftp://ftp.pld.org.pl/dists/ra/PLD/i686/PLD/RPMS/
pld-test     ftp://ftp.pld.org.pl/dists/ra/test/i686/  (noauto)

WYBIERANIE PAKIETOW
Pakiety mogX byae wybierane na trzy sposoby:

•   jako pliki pakietow w argumentach

    $ poldek ... ala-ma-kota-2.1-2.i386.rpm

•   jako maska nazw pakietow

    na przykXad:

    $ poldek ... apache

    $ poldek ... 'apache*'

    JeXeli musi byae ustawione EVR, wpisz je po '#', np.:

    $ poldek ... apache#1.3.12

    $ poldek ... apache#1.3.20-1

•   jako zestaw pakietow zdefiniowany w PLIKU --pset=PLIK, (patrz README.package-sets):

    $ poldek ... --pset ~/.package-sets/tiny-system

Wszystkie powyXsze opcje mogX byae XXczone. Zwroae uwage, Xe wybrane pakiety powinny byae obecne w XRODLE.

PODSTAWOWE TRYBY
Jeden z nastepujXcych trybow podstawowych musi byae wybrany:

--mkidx[z][=PLIK]  [--nodiff]
    Buduje indeks pakietow, domyXlnie jest on przechowywany w SOURCE/packages.dir[.gz]. Tworzone sX dwa inne pliki: packages.dir.mdd z obliczonym skrotem packages.dir oraz packages.dir.toc[.gz] z NAME-EVR pakietow po jednym w linii.

    Dodatkowo, jeXli poprzedni indeks pakietow jest roXny od aktualnie utworzonego, wtedy tworzony jest indeks "patch" w katalogu SOURCE/packages.i/. KaXdy patch skXada sie z dwoch plikow: packages.dir.diff.YYYY.MM.DD-HH.mm.SS.gz i packages.dir.diff.YYYY.MM.DD-HH.mm.SS.mdd.

    Przeterminowane patche sX automatycznie usuwane.

    Z --nodiff patche nie sX tworzone.

    UWAGA: W tym jest przyjmowana jako XRODXO tylko jedna i tylko XcieXka do katalogu.

--up, --update; --upa, --update-whole
    Resynchronizuj indeks pakietow z jego XrodXa i zweryfikuj go.

    Z --update program szuka "patche'y" do istniejXcego lokalnie indeks pakietow, a jeXli to zawodzi, pobiera caXy indeks.

    Z --update-whole program uaktualnia caXy indeks pakietow.

    Dla XrodeX lokalnych program weryfikuje integralnosae istniejXcego indeksu za pomocX jego skrotu z packages.dir.mdd.

-V|--verify
    Opcja ta weryfikuje zaleXnoXci zbioru pakietow. JeXli nie okreXlono pakietow sprawdza wszystkie dostepne.

--install-dist[=KATALOG]
    Instaluje od zera system uXywajXc KATALOGU jako katalogu gXownego (/). Trzeba okreXliae pakiety.

--upgrade-dist[=KATALOG]
    Instaluje najnowsze wersje wszystkich juX zainstalowanych pakietow w systemie korzystajXc z okreXlonego XrodXa (patrz "XRODXO").

-i, --install|-u, -U, --upgrade|--downgrade
    Instaluje, uaktualnia bXdX instaluje starszX wersje pakietu.

--reinstall
    Przeinstalowuje podany pakiet.

--shcmd=POLECENIE
    Uruchamia w trybie interaktywnym POLECENIE i wychodzi.

--shell
    Uruchamia poldka w trybie interaktywnym. Wpisz "help" aby uzyskaae liste dostepnych polecen~. Jest to domyXlny tryb pracy poldka.

--split=ROZMIAR[:PIERWSZY_WOLNY_OBSZAR]  [--split-conf=PLIK] [--split-out=PREFIKS]
    Dzieli zestaw pakietow na czeXci, kaXda o rozmiarze ROZMIAR MB. Pierwsza czeXae bedzie o PIERWSZY_WOLNY_OBSZAR MB mniejsza.

    Priorytety pakietow sX brane z PLIKU podanego przez --split-conf (patrz przykXadowy pkgsplit.conf z dystrybucji programu). DomyXlnie pakiety majX priorytet 0.

    KaXda czeXae jest zapisywana jako lista NAME-EVR.ARCH.rpm do pliku PREFIX.XX, domyXlnie PREFIX stanowi "packages.chunk".

  Opcje instalacji

--dump[=PLIK]
    Wypisz nazwy plikow pakietow do PLIKU bXdX na standardowe wyjXcie, zamias instalowaae je.

--dumpn[=PLIK]
    Wypisz nazwy pakietow do PLIKU bXdX na standardowe wyjXcie, zamiast instalowaae je.

--fetch[=KATALOG]
    Jak --dump, ale pakiety sX pobierane i skXadowane domyXlnie w katalogu stanowiXcym cache poldka.

-F, --fresh
    Aktualizuj pakiety, ale tylko jeXli wczeXniejsza wersja jest aktualnie zainstalowana. Uwaga: odpowiednikiem "rpm --freshen" jest "poldek -u/-i --fresh --nofollow"

-G, --greedy
    Automatycznie aktualizuj pakiety, ktorych zaleXnoXci sX Xamane poprzez zainstalowane pakiety, na przykXad jeXli pakiet foo jest aktualizowany z wersji 1.0 do 1.2, a pakiet foo-devel jest juX zainstalowany z zaleXnoXciX "foo = 1.0", wtedy poldek aktualizuje takXe foo-devel do wersji 1.2.

--hold=PAKIET[,PAKIET]...
    Zapobiega aktualizacji podanych pakietow, jeXli sX juX zainstalowane. JeXli opcja nie jest podana, wtedy lista pakietow do zatrzymania jest brana z opcji konfiguracyjnej hold i dodatkowo z $HOME/.poldek_hold. Wstrzymakie pakiety nie bedX aktualizowane za wyjXtkiem sytuacji, gdy bedX bezpoXrednio wskazane przez uXytkownika.

-m, --mercy
    BXdX tolerancyjny w stosunku do zaleXnoXci od wersji, ktore toleruje RPM, np.: pakiet A wymaga foo >= 1.0, podczas gdy pakiet B dostarcza "foo" beX Xadnej wersji.

--nodeps; --justdb; --force; --root;
    Ma takie znaczenie jak w przypadku RPM. Patrz nastepna sekcja.

-N, --nofollow
    Nie instaluj automatycznie pakietow wymaganych przez wybrane.

--nohold
    Nie bierz listy wstrzymywanych pakietow z $HOME/.poldek_hold ani parametru konfiguracyjnego hold.

--rpmdef="NAZWA WARTOX-1AE"
    Jak opcja rpm --define.

-t, --test
    N~ie instaluj pakietow, ale sprawdX, czy zadziaXa czy nie. Podane raz powoduje tylko test z uXyciem poldka, Xeby przeprowadziae peXny test z uXyciem rpma podaj dwukrotnie.

INNE OPCJE

--cachedir=KATALOG
    KATALOG wskazuje miejsce, gdzie pobrane pliki majX byae przechowywane. JeXli opcja nie jest ustawiona, uXyty jest $TMPDIR. JeXli $TMPDIR nie jest ustawiony, wtedy tworzony jest $HOME/.poldek-cache i uXywany jako katalog cache.

--log=PLIK
    Loguj wszystkie komunikaty poldka do PLIKU.

WSPOXPRACA Z RPM
Obecnie wszystkie instalacje za wyjXtkiem install-dist sX robione przez binarke RPM, ktora jest uruchamiana w tle. Opcje przekazywane do rpma:

•   --root

•   --force

•   --install

•   --justdb

•   --nodeps

•   --test (musi byae podane dwukrotnie, patrz wyXej opis --test)

•   --upgrade

•   --rpmdef (przekazywane jako --define)

Inne opcje rpma mogX byae przekazywane jako argumenty w postaci --rpm-RPM_LONG_OPTION, np.:

$ poldek ... -- --rpm-noscripts --rpm-notriggers

PLIK KONFIGURACYJNY
Program probuje przeczytaae konfiguracje z $HOME/.poldekrc; jeXli plik ten nie istnieje, czyta /etc/poldek.conf. Opcja -c,--conf moXe wskazywaae na innX lokalizacje pliku konfiguracyjnego. Z --noconf poldek nie czyta Xadnej konfiguracji.

Plik konfiguracyjny zawiera parametry w nastepujXcej postaci:

'nazwa = wartoXae'

Plik jest oparty na liniach, czyli kaXda linia zakon~czona znakiem nowej linii reprezentuje komentarz bXdX parametr.

  Parametry:

•   source = [NAZWA[,OPCJE]] XCIEXKA_XRODXOWA

    Opcjonalna NAZWA moXe byae okreXlona poXniej z linii polecen~ przez -n, --sn NAZWA-XRODXA; na przykXad jeXli masz XrodXa skonfigurowane nastepujXco:

    source = pld-devel /mnt/PLD-stable/RPMS

    source = pld-stable ftp://zn/PLD/i686/PLD/RPMS

    source = misRPMS ftp://zn/rpm/RPMS/

    wtedy aby uXyae tylko ftp://zn/PLD/i686/PLD/RPMS wykonaj:

    $ poldek --sn pld-stable

    ...i aby uXyae wszystkich pld-*:

    $ poldek --sn pld-\*

    OPCJE okreXlajX opcje XrodeX; dozwolone wartoXci to:

    •   noauto - nie Xaduj domyXlnie tych XrodeX

    •   noautoup - nie aktualizuj domyXlnie tych XrodeX

    •   gpg - weryfikuj sygnatury GPG pakietu

    •   pgp - weryfikuj sygnatury PGP pakietu

    •   pri=WARTOX-1AE_NUMERYCZNA

        OpcjX tX moXna ustawiae priorytet XrodXa. JeXli te same pakiety (identyczna nazwa i EVR) sX dostepne z wiecej niX jednego XrodXa, wtedy brane sX pakiety ze XrodXa o wyXszym priorytecie.

        JeXli priorytety XrodeX nie sX ustawione, XrodXa dostajX priorytety zgodne z ich kolejnoXciX w pliku konfiguracyjnym.

    •   type=TYP_XRODXA

        Opcja ta pozwala na ustawienie typu XrodXa. Dostepne wartoXci to:

        •   pidx - natywny plik indeksu poldka (domyXlny)

        •   pdir - lokalne katalogi; poldek przeszuka je zamiast
                              czytaae plik indeksu

        •   hdrl - plik z surowymi nagXowkami pakietow w formacie RPM;
             dostepny w wielu dystrybucjach opartych na RPM-ie (w RH nazywa sie hdlist),
             jednakXe ten format nie jest optymalny dla poldka (nie jest na przykXad
             auktualizowalny). Patrz poldekrc.sample-rh zaXXczony w dystrybucji poldka.

    PrzykXady:

    # pakiety z 'pld' sX preferowane source = pld,gpg,noautoup,pri=-10 ftp://zn/PLD/ra/RPMS

    source = pld-test,noauto /mnt/PLD-test/RPMS

    source = rare,noautoup ftp://host/rare-RPMS

    source = build-area,type=dir /home/zenek/rpm/RPMS

    source99 = rh,noauto,type=hdrl ftp://redhat/os/i386/RedHat/base/hdlist

    prefix99 = ftp://redhat/os/i386/RedHat/RPMS

•   sourceXX = XRODXO

•   prefixXX = XRODXO

    JeXli chcesz skonfigurowaae XrodXo z prefiksem (patrz opis opcji -P), wtedy powinno byae okreXlone jako zakon~czona sufiksem para XrodXo/prefiks, aby rozroXniae dane XrodXo od innych, na przykXad:

    source1 = ~/tmp/moje-indeksy-cd/

    prefix1 = /mnt/cdrom/RPMS/

•   cachedir

            Patrz opis opcji B<--cachedir>

•   confirm_installation = yes|no

            JeXli ustawione na "yes" program potwierdza wszystkie instalacje
            pakietow (domyXlnie: no)

•   confirm_removal = yes|no

            JeXli ustawione na "yes" program potwierdza wszystkie deinstalacje
            pakietow (domyXlnie: yes)

•   choose_equivalents_manually = yes|no

            JeXli ustawione na "yes" program pozwala uXytkownikowi na wybor
            spoXrod rownowaXnych pakietow (domyXlnie: no)

•   follow = yes|no

            Automatycznie instaluj|nie instaluj pakietow wymaganych przez
            wybrane (domyXlnie: yes)

•   ftp_sysuser_as_anon_passwd = yes|no

            JeXli ustawione na "yes" jako anonimowe hasXo FTP wysyXane jest
            login@hostname (domyXlnie: no)

•   greedy = yes|no

            Patrz opis opcji --greedy (domyXlnie: no)

•   hold = pakiet[ pakiet...]

            Patrz opis opcji --hold

•   mercy = yes|no

            Patrz opis opcji --mercy

•   keep_downloads = yes|no

            Program domyXlnie usuwa pobrane pliki pakietow po pomyXlnej instalacji.
            JeXli opcja ustawiona jest na "yes", wtedy program nie usunie pobranych
            pakietow z katalogu cache.

•   particle_install = yes|no

            JeXli ustawione na "no" instalacja wielu pakietow jest przeprowadzana
            jako jedna transakcja (domyXlnie: yes)

•   use_sudo = yes|no

            Dla operacji r/w uruchom rpma uXywajXc sudo.
            DomyXlnX wartoXciX jest "no", ale zalecana jest zmiana na "yes"
            i uXywanie poldka jako zwykXy uXytkownik.

Zewnetrzne programy pobierajXce

Programy pobierajXce sX konfigurowane przez parametr PROTOCOL_get="SPEC". SPEC jest poleceniem bXdX sformatowanym Xan~cuchem, gdzie przynajmniej 2 z 4 dostepnych semi-makr powinny byae uXyte:

%p[n] - nazwa pliku pakietu, %pn znaczy, Xe %p moXe wystXpiae wiele razy
%P[n] - peXna XcieXka do pakietu, %Pn -"-
%d - katalog cache
%D - katalog cache/nazwa pakietu

Obecnie dostepne sX cztery protokoXy: FTP, HTTP, HTTPS i RSYNC. Specjalny "protokoX" ftp_http moXe byae uXyty do opisu programow pobierajXcych z obu protokoXow, HTTP i FTP.

PrzykXady:

ftp_http_get = "/usr/bin/wget -N --dot-style=binary -P %d %Pn"

ftp_get = "/usr/bin/curl %P -o %D"

ftp_get = "/usr/bin/snarf %P %D"

rsync_get = "/usr/bin/rsync -v %P %d"

Patrz rownieX: zaXXczone przykXadowe pliki konfiguracyjne.

Dodatkowo poldek wspiera URL-e CDROM, ktore mogX byae uXywane, gdy zestaw pakietow jest przechowywany na zmienialnych mediach (kilka CD, ZIP-ow, etc); jako CDROM "downloader" powinien byae skonfigurowany vfjuggle, po szczegoXy patrz poldekrc.sample-cdrom.

PRZYKXADY

  Tworzenie indeksu pakietow:
$ poldek -s /cdrom/PLD/RPMS --mkidxz=/tmp/packages.dir.gz

$ poldek -s /ftp/pub/PLD/RPMS --mkidxz

UXywajXc skryptu mkpackagedir:

$ mkpackagedir /ftp/pub/PLD/i686/RPMS /ftp/pub/PLD/sparc/RPMS

  Weryfikacja:
$ poldek -s rsync://ala.ma.kota/PLD/RPMS/ -V

$ poldek -s /dir/with/RPMS -V apache

  Instalacja od zera:
$ poldek -s ftp://ftp.trurl.net/PLD/RPMS/
  --install-dist=/mnt/dest --pset ftp://home.net/moje-podzestawy/mojzestaw

PowyXsze polecenie instaluje podzestaw pakietow "mojzestaw" w /mnt/dest jako root.

  Aktualizacja caXego systemu:
$ poldek -v -s ftp://ftp.tatry.pl/PLD/RPMS/ --upgrade-dist --log=~/tmp/poldek.log

Tylko pobierz pakiety zaznaczone do aktualizacji:

$ poldek -s ftp://ftp.rankiem.net.pl/PLD/RPMS/
  --upgrade-dist --fetch=/tmp/PLD-up/

Stworz liste nazw pakietow zaznaczonych do aktualizacji:

$ poldek -s ftp://ftp.pld.org.pl/PLD/RPMS/
 --upgrade-dist --dump=/tmp/PLD-up-`date +%Y.%m.%d`

Tylko testuj:

$ poldek -s ftp://ftp.pociemku.org/PLD/RPMS/
  --upgrade-dist --test

  Instalacja/aktualizacja wybranych pakietow:
$ poldek -s ftp://ftp.znienacka.com/PLD/RPMS/ -u apache --nevr "ala-ma-kota 1.2" smail-12-389.i386.rpm

$ poldek -s ftp://ftp.dudy.net/RPMS/ -ti xteddy

  Dzielenie zestawu na 100 MB czeXci:
$ poldek --split=100 --split-conf=zip-split.conf \
   --split-out=/tmp/zipchunk

  Wykonanie polecenia powXoki:
$ poldek --shcmd='ls -lt' | less

XRODOWISKO
Plik konfiguracyjny pobierany jest z $HOME.

$TMPDIR (jeXli ustawiony) jest uXywany jako katalog tymczasowy o ile nie jest okreXlony cachedir.

$PAGER (jeXli ustawiony) jest uXywany w trybie interaktywnym.

PLIKI
/etc/poldek.conf

$HOME/.poldekrc

$HOME/.poldek_hold

$HOME/.poldek-cache/

BXEDY

  Konflikty plikow
Konflikty sX wykrywane tylko przez porownanie rozmiarow plikow i trybow, co oznacza, Xe nie wszystkie konflikty mogX byae wykryte, gdyX nie sX porownywane sumy kontrolne MD5 (zbyt bardzo zwiekszyXoby to zuXycie pamieci).

  Uaktualnianie i tag "Obsoletes"
W PLD http://www.pld.org.pl, ktore jest podstawowX platformX rozwojowX dla poldka, tag "Obsoletes" jest uXywany w dwoch roXnych znaczeniach: pierwsze oznacza A uniewaXnia B, drugie zaX A jest rownowaXne B. OczywiXcie jest niemoXliwe, aby je rozroXniae i uXyae podczas aktualizacji systemu (w Red Hat Linux uXyte jest jedynie pierwsze znaczenie, wiec instalator Red Hata uXywa tego taga).

  Aktualizacja wiecej niX jednej instancji pakietu
rpm nie obsXuguje takiego przypadku, wiec poldek takXe.

  Przetwarzanie zaleXnoXci
Na tyle na ile przetestowaXem poldka, zupeXnie rozwiXzuje on zaleXnoXci pakietow (nie konflikty plikow) podczas instalacji i uaktualnienia. Prosze powiadomiae mnie, jeXli zauwaXysz, Xe rpm zgXasza niespeXnione zaleXnoXci, podczas gdy poldek nie.

  Dokumentacja
Ten manual powinien byae ukon~czony i przetXumaczony na jezyk angielski.

UWAGA
Program ten z pewnoXciX zawiera bXedy. Zrob kopie bezpieczen~stwa swojej bazy danych RPM-a i bXdX uwaXny. Pamietaj, Xe NIE MA XADNEJ GWARANCJI i udanej zabawy.

LICENCJA
Program ten jest rozprowadzany na zasadach licencji GNU General Public License, wersja 2.

AUTORZY
Pawel A. Gajda <mis@pld.org.pl>

Autorem tego tXumaczenia jest GoTaR <gotar@pld.org.pl>

KONTAKT

  Strona domowa: http://team.pld.org.pl/~mis/poldek/

  Lista mailingowa poldek@pld-linux.org
Prosze przesyXaae komentarze, raporty o bXedach itp. do autora bXdX na liste mailingowX.

PATRZ ROWNIEX
apt(1) apt-get(8), curl(1), rpm(1), rsync(1), snarf(1), wget(1)

POD ERRORS
Hey! The above document had some coding errors, which are explained below:

Around line 1:
    =pod directives shouldn't be over one line long! Ignoring all 2 lines of content