Management pachete
From Bucuresti Linux Users Group
Managementul de pachete este probabil diferenţa cea mai distinctivă dintre toate distribuţiile Linux. Marile distribuţii tind să ofere utilitare grafice(Synaptic în Debian, Drakrpm în Mandriva) prin care utilizatorii pot instala software doar cu ajutorul câtorva click-uri, însă acestea sunt doar un front-end al aplicaţiilor care rulează în terminal. Deşi mulţi utilizatori folosesc aceste utilitare grafice pentru instalarea/dezinstalarea de pachete, nu există nicio îndoială că terminalul oferă două atuuri care lipsesc din utilitarele grafice: putere şi viteză.
Principala problemă a utilizatorilor este necesitatea de a reînvăţa comenzile managerului de pachete de fiecare dată când trece de la o distribuţie la alta. În plus managerele de pachete tind să evolueze, astfel încât la fiecare nouă versiune, i se mai adaugă o opţiune sau comandă. De aceea am considerat utilă crearea acestui tutorial care să cuprindă comenzile principalelor managere de pachete existente.
Contents |
Distribuţii bazate pe pachete binare
Majoritatea distribuţiilor existente folosesc pachete binare. Acestea sunt pachete precompilate de către maintainerii şi dezvoltatorii distribuţiei respective şi sunt ţinute pe serverele repo(repository) ale distribuţiei respective. Instalarea este foarte simplă, deoarece utilizatorul nu trebuie să compileze întregul cod-sursă, iar dependinţele necesare sunt instalate automat.
Distribuţii Majore: Debian, openSUSE, Fedora, Mandriva
Primul tabel ilustrează comenzile managerelor de pachete implicite în distribuţiile principale - Debian (şi derivatele: Ubuntu, Linux Mint, KNOPPIX, Mepis etc.), openSUSE, Fedora (inclusiv RHEL, CentOS şi alte distribuţii derivate din Fedora) şi Mandriva Linux.
| Sarcina | Debian (APT) | openSUSE (ZYPPER) | Fedora, CentOS (YUM) | Mandriva (URPMI) |
|---|---|---|---|---|
| Instalare software din repository | apt-get install <pachet> | zypper install <pachet> | yum install <pachet> | urpmi <pachet> |
| Instalare software (pachet local) | dpkg -i <pachet> | zypper install <pachet> | yum localinstall <pachet> | urpmi <pachet> |
| Update software (un pachet anume) | apt-get upgrade <pachet> | zypper update -t package <pachet> | yum update <pachet> | urpmi <pachet> |
| Dezinstalare software | apt-get remove <pachet> | zypper remove <pachet> | yum erase <pachet> | urpme <pachet> |
| Update lista de pachete | apt-get update | zypper refresh | yum check-update | urpmi.update -a |
| Update sistem | apt-get upgrade | zypper update | yum update | urpmi --auto-select |
| Cautare pachet | apt-cache search <pachet> | zypper search <pachet> | yum list <pachet> yum search <pachet> | urpmq -Y <pachet> |
| Listare software instalat | dpkg -l | zypper search -is | rpm -qa | rpm -qa |
| Listare repository | cat /etc/apt/sources.list | zypper repos | yum repolist | urpmq --list-media |
| Adaugare repository | (editare /etc/apt/sources.list) | zypper addrepo <url> <nume> | (adaugare *repo in /etc/yum.repos.d) | urpmi.addmedia <nume> <url> |
| Stergere repository | (editare /etc/apt/sources.list) | zypper removerepo <nume> | (stergere *repo din /etc/yum.repos.d) | urpmi.removemedia <nume> |
Slackware Linux si derivatele (Vector Linux, Zenwalk Linux)
Tabelul de mai jos ilustrează comenzile managerelor de pachete din Slackware Linux şi din distribuţiile derivate din Slackware. Spre deosebire de alte distribuţii, Slackware nu are un manager capabil să rezolve dependinţele pachetelor, iar instalarea şi dezinstalarea pachetelor se face folosind "pkgtools", un set de scripturi simple care nu s-a schimbat prea mult în ultimii ani. Cu toate acestea există un manager de pachete avansat, "slackpkg", care a fost introdus în Slackware Linux 12.2. VectorLinux, o distribuţie derivată din Slackware, a standardizat "slapt-get" , un manager avansat care imită comportamentul APT din Debian, în timp ce Zenwalk Linux, o altă distribuţie derivată din Slackware, a introdus propriul manager de pachete, "netpkg"
| Sarcina | Slackware Linux (PKGTOOLS) | Slackware Linux (SLACKPKG) | Vector Linux (SLAPT-GET) | Zenwalk Linux (NETPKG) |
|---|---|---|---|---|
| Instalare software din repository | ----- | slackpkg install <pachet> | slapt-get --install <pachet> | netpkg <pachet> |
| Instalare software (pachet local) | installpkg <pachet> | slackpkg install <pachet> | slapt-get --install <pachet> | netpkg <pachet> |
| Update software (un pachet anume) | upgradepkg <pachet> | slackpkg upgrade <pachet> | slapt-get --install <pachet> | netpkg <pachet> |
| Dezinstalare software | removepkg <pachet> | slackpkg remove <pachet> | slapt-get --remove <pachet> | netpkg remove <pachet> |
| Update lista de pachete | ----- | slackpkg update | slapt-get --update | (automata) |
| Update sistem | ----- | slackpkg upgrade-all | slapt-get --upgrade | netpkg upgrade |
| Cautare pachet | ----- | slackpkg search <pachet> | slapt-get --search <pachet> | netpkg <pachet> <repo> |
| Listare software instalat | ls /var/log/packages | ls /var/log/packages | slapt-get --installed | netpkg list I |
| Listare repository | ----- | cat /etc/slackpkg/mirrors | cat /etc/slapt-get/slapt-getrc | netpkg mirror |
| Adaugare repository | ----- | (editare /etc/slackpkg/mirrors) | (editare /etc/slapt-get/slapt-getrc) | (editare /etc/netpkg.conf) |
| Stergere repository | ----- | (editare /etc/slackpkg/mirrors) | (editare /etc/slapt-get/slapt-getrc) | (editare /etc/netpkg.conf) |
Distribuţii Independente: Sabayon Linux, ArchLinux, rPath, Foresight Linux, Pardus Linux
În următorul grup avem distribuţiile independente care au câştigat popularitate în anii recenţi. Sabayon Linux, deşi derivat din Gentoo, a introdus managerul propriu de pachete numit "equo". Pacman din ArchLinux există de multă vreme şi este considerat deseori că fiind cel mai rapid manager de pachete existent. "Conary", dezvoltat de rPath şi popularizat de Foresight Linux, este o abordare complet nouă în privinţa managerelor de pachete, fiind creat de ingineri Redhat cunoscuţi, cu mulţi ani de experienţă în managementul de pachete. În contrast Pisi din Pardus Linux, este un manager relativ nou, însă distribuţia în şine a crescut repede în ultimii doi ani.
| Sarcina | Sabayon Linux (EQUO) | ArchLinux (PACMAN) | rPath, Foresight Linux (CONARY) | Pardus Linux (PISI) |
|---|---|---|---|---|
| Instalare software din repository | equo install <pachet> | pacman -S <pachet> | conary update <pachet> | pisi install <pachet> |
| Instalare software (pachet local) | equo install <pachet> | pacman -U <pachet> | conary update <pachet> | pisi install <pachet> |
| Update software (un pachet anume) | equo install <pachet> | pacman -S <pachet> | conary update <pachet> | pisi install <pachet> |
| Dezinstalare software | equo remove <pachet> | pacman -R <pachet> | conary erase <pachet> | pisi remove <pachet> |
| Update lista de pachete | equo update | pacman -Sy | ----- | pisi update-repo |
| Update sistem | equo world | pacman -Su | conary updateall | pisi upgrade |
| Cautare pachet | equo match <pachet> | pacman -Ss <pachet> | conary query <pachet> | pisi search <pachet> |
| Listare software instalat | equo list | pacman -Q | conary query | pisi list-installed |
| Listare repository | equo repoinfo | cat /etc/pacman.d/mirrorlist | ----- | pisi list-repo |
| Adaugare repository | ----- | (editare /etc/pacman.conf) | ----- | pisi add-repo <nume> <url> |
| Stergere repository | ----- | (editare /etc/pacman.conf) | ----- | pisi remove-repo <nume> |
Managere de Pachete Multi-Distribuţie: SMART, PackageKit(PKGCON)
În afară de managerele de pachet standard existente în fiecare distribuţie, mai există şi managere de pachete multi-distribuţie, capabile să ruleze cu succes pe diferite distribuţii şi cu tipuri diferite de pachete. Smart, dezvoltat iniţial de către Conectiva, nu a fost folosit o bună perioadă, însă se pare că mulţi îl preferă în locul URPMI în Mandriva şi în locul ZYPPER în openSUSE (de asemenea mai suportă şi distribuţii bazate pe Debian şi pe Slackware). Recent însă managerul PackageKit din Fedora a câştigat mult teren pe diferite distribuţii, fiind inclus deja în Fedora, Ubuntu, openSUSE, Mandriva şi altele.
| Sarcina | Mandriva, openSUSE (SMART) | Fedora, Ubuntu, Mandriva, openSUSE (PKGCON) |
|---|---|---|
| Instalare software din repository | smart install <pachet> | pkgcon install <pachet> |
| Instalare software (pachet local) | smart install <pachet> | pkcon install-file <pachet> |
| Update software (un pachet anume) | smart install <pachet> | pkcon update <pachet> |
| Dezinstalare software | smart remove <pachet> | pkcon remove <pachet> |
| Update lista de pachete | smart update | pkcon refresh |
| Update sistem | smart upgrade | pkcon upgrade |
| Cautare pachet | smart search <pachet> | pkcon search name <pachet> |
| Listare software instalat | smart query --installed | ----- |
| Listare repository | smart channel --show | pkcon repo-list |
| Adaugare repository | smart channel --add <nume> <url> | ----- |
| Stergere repository | smart channel --remove <nume> | ----- |
Distribuţii bazate pe pachete cod-sursă
Există distribuţii care nu folosesc pachete binare. Acestea folosesc managere de pachete extrem de avansate, capabile să lucreze cu codul sursă al aplicaţiei. Cu toate acestea instalarea pachetelor este uşoară, însă durează un timp mai îndelungat. Managerul Portage din Gentoo Linux este foarte utilizat şi bine documentat, însă celelalte distribuţii bazate pe pachete cod-sursă nu sunt aşa de cunoscute. Sorcerer, o distribuţie care a existat chiar înainte Gentoo, folosea simple scripturi bash pentru a descărcă, compila şi instală pachetele. Ulterior au apărut două distribuţii bazate pe Sorcerer, Lunar Linux şi Sourge Mage GNU/Linux, ambele fiind incluse în tabelul de mai jos. Din nefericire Sorcerer nu oferă prea multe în materie de documentaţie online prin urmare nu este prezent în tabel.
| Sarcina | Gentoo (PORTAGE) | Lunar Linux (LUNAR) | Sourge Mage GNU/Linux (SORCERY) |
|---|---|---|---|
| Instalare software din repository | emerge <pachet> | lin <pachet> | cast <pachet> |
| Instalare software (pachet local) | ----- | ----- | ----- |
| Update software (un pachet anume) | emerge <pachet> | lin <pachet> | cast <pachet> |
| Dezinstalare software | emerge -aC <pachet> | lrm <pachet> | dispel <pachet> |
| Update lista de pachete | emerge --sync | lin moonbase | scribe update |
| Update sistem | emerge -NuDa world | lunar update | sorcery upgrade |
| Cautare pachet | emerge --search <pachet> | lvu search <pachet> | gaze search -name <pachet> |
| Listare software instalat | qlist -I | lvu installed | gaze installed |
| Listare repository | layman -L | ----- | scribe index |
| Adaugare repository | layman -a <repo> | ----- | scribe add repo |
| Stergere repository | layman -d repo | ----- | scribe remove repo |
FreeBSD
Deşi nu este o distribuţie Linux am ales să scriu şi despre FreeBSD din două motive. Primul este acela că FreeBSD foloseşte atât sistemul de pachete binare, cât şi sistemul de pachete cod-sursă. Al doilea motiv este faptul că sistemul "ports" din FreeBSD a fost sursa de inspiraţie a lui Daniel Robbins când a creat "portage" în Gentoo Linux.
| Sarcina | FreeBSD (SISTEM BINAR) | FreeBSD (SISTEM COD-SURSA: PORTS) |
|---|---|---|
| Instalare software din repository | pkg_add -r <pachet> | cd <port_dir> && make && make install |
| Instalare software (pachet local) | pkg_add <calea catre pachet> | ----- |
| Update software (un pachet anume) | pkg_add <calea catre pachet> | portupgrade -R <pachet> |
| Dezinstalare software | pkg_delete <pachet> | pkg_delete <pachet> |
| Update lista de pachete | ----- | portsnap update |
| Update sistem | freebsd-update fetch install | portsnap fetch install |
| Cautare pachet | ----- | cd /usr/ports && make search <pachet> |
| Listare software instalat | pkg_info | pkg_info |
| Listare repository | ----- | ----- |
| Adaugare repository | ----- | ----- |
| Stergere repository | ----- | ----- |
Documentatie
Distrowatch - Package Management
Inițiator tutorial : : V3n3RiX

