Debian: Gestor de paquets

Les distribucions Debian, inclosa Kali, tenen diverses maneres que pot utilitzar l’usuari per instal·lar programari.

A aquesta entrada em centro sobretot amb apt i dpkg. Al final mencionaré alguns programes específics que tenen GUI per facilitar la instal·lació a usuaris no familiaritzats amb el sistema.

Source.list

El fitxer /etc/apt/source.list i els que conté la carpeta /etc/apt/sources.list.d/ contenen els repositoris que ha d’utilitzar el sistema per instal·lar i actualitzar els programes.

nadki@debian:~$ cat /etc/apt/sources.list
# deb cdrom:[Debian GNU/Linux 11.6.0 _Bullseye_ - Official amd64 NETINST 20221217-10:42]/ bullseye main

# deb cdrom:[Debian GNU/Linux 11.6.0 _Bullseye_ - Official amd64 NETINST 20221217-10:42]/ bullseye main

deb http://deb.debian.org/debian/ bullseye non-free main contrib
deb-src http://deb.debian.org/debian/ bullseye non-free main contrib

deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main

# bullseye-updates, to get updates before a point release is made;
# see https://www.debian.org/doc/manuals/debian-reference/ch02.en.html#_updates_and_backports
deb http://deb.debian.org/debian/ bullseye-updates non-free contrib main
deb-src http://deb.debian.org/debian/ bullseye-updates non-free contrib main

# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
deb http://deb.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://deb.debian.org/debian-security bullseye-security main contrib non-free

Les línies que tenen el símbol # estan comentades, així que el sistema les ignorarà.

Cada línia està dividida en tres parts:

  1. Tipus: pot ser deb per binaris o dev-src per codi font.
  2. URL: la URL del recurs. La URL pot començar amb file:// per indicar que és en local, http:// o https:// si es un servidor web, ftp:// si és un servidor FTP o cdrom: si ho ha de llegir d’un CD/DVD/Blu-ray.
  3. Llicència: Debian separa els paquets segons el tipus de llicència. main conté paquets que estan alineats amb Debian Free Software Guidelines, non-free són programes que no estan del tot alineats amb aquests principis, però que es poden distribuir sense restriccions i, per últim, contrib són programes lliures, però que per compilar-los es necessiten elements propietaris.

DPKG

dpkg és l’eina central que pots utilitzar directament o indirectament a través d’apt, per instal·lar un paquet.

Instal·lar

Primer de tot, has de baixar-te el paquet que t’interessa, tindrà el format .deb. Una vegada el tinguis, només has d’executar dpkg amb l’atribut -i o –install:

nadki@debian:~$ sudo dpkg -i man-db_2.9.3-2_amd64.deb
(Reading database ... 309317 files and directories currently installed.)
Preparing to unpack man-db_2.9.3-2_amd64.deb ...
Unpacking man-db (2.9.3-2) over (2.9.3-2) ...
Setting up man-db (2.9.3-2) ...
Updating database of manual pages ...
man-db.service is a disabled or a static unit not running, not starting it.
Processing triggers for kali-menu (2020.4.0) ...
Processing triggers for mime-support (3.64) ...

Per darrere, quan dpkg instal·la un paquet realitza dues accions. Primer descomprimeix i després instal·lat. Pots executar ambdues accions manualment també:

# Descomprimir
nadki@debian:~$ sudo dpkg --unpack man-db_2.9.3-2_amd64.deb
(Reading database ... 309317 files and directories currently installed.)
Preparing to unpack man-db_2.9.3-2_amd64.deb ...
Unpacking man-db (2.9.3-2) over (2.9.3-2) ...
Processing triggers for kali-menu (2020.4.0) ...
Processing triggers for mime-support (3.64) ...

# Instal·lar
nadki@debian:~$ sudo dpkg --configure man-db
Setting up man-db (2.9.3-2) ...
Updating database of manual pages ...

Pots afegir la comanda –force-overwrite per forçar a dpkg a instal·lar el paquet ignorant qualsevol mena d’error.

Tingues en compte, però que dpkg, a diferència d’apt, no instal·la les dependències. Així que és possible que hagis d’instal·lar diversos paquets abans de poder instal·lar el que vols.

Desinstal·lar

Desinstal·lar un paquet és més senzill que instal·lar-lo. Només has d’utilitzar la comanda –remove o -r.

nadki@debian:~$ sudo dpkg -r debian-cd
(Reading database ... 333606 files and directories currently installed.)
Removing debian-cd (3.1.32) ...

No obstant això, no s’elimina tot, ja que els fitxers de configuració, scripts de manteniment, logs o la informació d’usuari queda intacta. Això és així perquè sigui més fàcil instal·lar-ho en un futur i vulguis mantenir la mateixa configuració.

Si vols eliminar-ho tot completament, has d’executar-ho amb l’atribut -P, després del remove.

nadki@debian:~$ sudo dpkg -P debian-cd
(Reading database ... 332950 files and directories currently installed.)
Removing debian-cd (3.1.32) ...
Purging configuration files for debian-cd (3.1.32) ...

Inspeccionar

Hi ha diversos atributs de dpkg que pots utilitzar per inspeccionar:

  • dpkg –listfiles PAQUET o -L: llista els fitxers que s’han instal·lat del paquet.
  • dpkg –search FITXER o -S: busca paquets que continguin el fitxer o directori indicat.
  • dpkg –list o -l: mostra els paquets que hi ha al sistema i el seu estat d’instal·lació.
  • dpkg –contents FITXER.deb o -c: llista tots els fitxers que conté el .deb.
  • dpkg –info FITXER.deb o -I: mostra les capçaleres del fiter .deb.

APT

APT és molt més avançat que dpkg. Tot i que fa moltes coses en segon pla, és molt senzill utilitzar-lo.

Instal·lar

Per instal·lar, només has d’utilitzar l’atribut install:

nadki@debian:~$ sudo apt install kali-tools-gpu
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  oclgausscrack truecrack
The following NEW packages will be installed:
Need to get 2,602 kB of archives.
After this operation, 2,898 kB of additional disk space will be used.
Get:1 http://kali.download/kali kali-rolling/main amd64 oclgausscrack amd64 1.3-1kali3 [30.7 kB]
Get:2 http://kali.download/kali kali-rolling/main amd64 truecrack amd64 3.6+git20150326-0kali1 [2,558 kB]
Get:3 http://kali.download/kali kali-rolling/main amd64 kali-tools-gpu amd64 2021.1.0 [12.6 kB]
Fetched 2,602 kB in 1s (2,645 kB/s)
Selecting previously unselected package oclgausscrack.
(Reading database ... 108127 files and directories currently installed.)
Preparing to unpack .../oclgausscrack_1.3-1kali3_amd64.deb ...
Unpacking oclgausscrack (1.3-1kali3) ...
Selecting previously unselected package truecrack.
Preparing to unpack .../truecrack_3.6+git20150326-0kali1_amd64.deb ...
Unpacking truecrack (3.6+git20150326-0kali1) ...
Selecting previously unselected package kali-tools-gpu.
Preparing to unpack .../kali-tools-gpu_2021.1.0_amd64.deb ...
Unpacking kali-tools-gpu (2021.1.0) ...
Setting up oclgausscrack (1.3-1kali3) ...
Setting up truecrack (3.6+git20150326-0kali1) ...
Setting up kali-tools-gpu (2021.1.0) ...
Processing triggers for man-db (2.9.3-2) ...
Processing triggers for kali-menu (2020.4.0) ...

Segons el contingut que tinguis al sources.list, potser t’interessa especificar la distribució o la versió del paquet que vols instal·lar.

# Instal·la segons versió
nadki@debian:~$ sudo apt install zsh=5.7.1-1

# Instal·la segons distribució
nadki@debian:~$ sudo apt install zsh/kali-dev

Igual que a dpkg, també pots forçar una instal·lació ignorant els errors. És una mica més complicada la comanda, perquè passes un atribut a dpkg:

nadki@debian:~$ sudo apt -o Dpkg::Options::="--force-overwrite" install zsh

Actualitzar

Sempre és recomanable tenir el sistema actualitzat, per així poder gaudir de les últimes versions i tenir les últimes actualitzacions de seguretat.

Per fer-ho és molt senzill. Simplement has d’executar dues comendes. Primer fer update i després upgrade.

nadki@debian:~$ sudo apt update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Get:2 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]        
Get:3 http://deb.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:4 http://security.debian.org/debian-security bullseye-security InRelease [48.4 kB]
Get:5 http://downloads.metasploit.com/data/releases/metasploit-framework/apt lucid InRelease [3,956 B]
Hit:6 https://debian.neo4j.com stable InRelease                                
Get:7 http://deb.debian.org/debian-security bullseye-security/main Sources [181 kB]
Get:8 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Get:9 http://deb.debian.org/debian-security bullseye-security/main Translation-en [142 kB]
Get:10 http://security.debian.org/debian-security bullseye-security/main Sources [181 kB]
Get:11 http://security.debian.org/debian-security bullseye-security/main amd64 Packages [216 kB]
Get:12 http://security.debian.org/debian-security bullseye-security/main Translation-en [142 kB]
Get:13 http://downloads.metasploit.com/data/releases/metasploit-framework/apt lucid/main amd64 Packages [418 B]
Fetched 1,224 kB in 1s (1,973 kB/s)            
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
5 packages can be upgraded. Run 'apt list --upgradable' to see them.

És necessari que executis sempre update primer, així el sistema podrà comparar totes les versions instal·lades amb les que hi ha al repositori.

nadki@debian:~$ sudo apt upgrade
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-image-5.10.0-21-amd64
The following packages will be upgraded:
  firefox-esr linux-image-amd64 linux-libc-dev metasploit-framework sudo
5 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 416 MB of archives.
After this operation, 318 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://security.debian.org/debian-security bullseye-security/main amd64 firefox-esr amd64 102.7.0esr-1~deb11u1 [60.0 MB]
Get:2 http://downloads.metasploit.com/data/releases/metasploit-framework/apt lucid/main amd64 metasploit-framework amd64 6.2.37+20230125112625~1rapid7-1 [298 MB]
Get:3 http://security.debian.org/debian-security bullseye-security/main amd64 linux-image-5.10.0-21-amd64 amd64 5.10.162-1 [55.5 MB]                                                         
Get:4 http://security.debian.org/debian-security bullseye-security/main amd64 linux-image-amd64 amd64 5.10.162-1 [1,484 B]                                                                   
Get:5 http://security.debian.org/debian-security bullseye-security/main amd64 linux-libc-dev amd64 5.10.162-1 [1,576 kB]                                                                     
Get:6 http://security.debian.org/debian-security bullseye-security/main amd64 sudo amd64 1.9.5p2-3+deb11u1 [1,061 kB]                                                                        
Fetched 416 MB in 11s (36.6 MB/s)                                                                                                                                                            
Reading changelogs... Done
(Reading database ... 159341 files and directories currently installed.)
Preparing to unpack .../0-firefox-esr_102.7.0esr-1~deb11u1_amd64.deb ...
Leaving 'diversion of /usr/bin/firefox to /usr/bin/firefox.real by firefox-esr'
Unpacking firefox-esr (102.7.0esr-1~deb11u1) over (102.6.0esr-1~deb11u1) ...
Selecting previously unselected package linux-image-5.10.0-21-amd64.

[...]

Setting up sudo (1.9.5p2-3+deb11u1) ...
Setting up firefox-esr (102.7.0esr-1~deb11u1) ...
Setting up linux-image-amd64 (5.10.162-1) ...
Processing triggers for mailcap (3.69) ...
Processing triggers for desktop-file-utils (0.26-1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for man-db (2.9.4-2) ...

De la mateixa manera que quan instal·les un paquet, també pots indicar de quin repositori fer les actualitzacions amb l’atribut -t NOM_REPOSITORI.

Per actualitzacions importants, potser t’interessa fer servir apt full-upgrade. Amb aquesta comanda, apt completarà l’actualització encara que hagi d’eliminar paquets obsolets o instal·lar noves dependències.

Desinstal·lar

Desinstal·lar un paquet és més senzill que instal·lar-lo. Només has d’utilitzar la comanda remove.

nadki@debian:~$ sudo apt remove debian-cd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  dctrl-tools hfsutils isolinux libfile-slurp-perl libyaml-libyaml-perl syslinux-common tofrodos
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  debian-cd
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 6,820 kB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 165351 files and directories currently installed.)
Removing debian-cd (3.1.35) ...

No obstant això, no s’elimina tot, ja que els fitxers de configuració, scripts de manteniment, logs o la informació d’usuari queda intacta. Això és així perquè sigui més fàcil instal·lar-ho en un futur i vulguis mantenir la mateixa configuració.

Si vols eliminar-ho tot completament, has d’executar-ho amb l’atribut purge, després del remove.

nadki@debian:~$ sudo apt purge  debian-cd
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
  dctrl-tools hfsutils isolinux libfile-slurp-perl libyaml-libyaml-perl syslinux-common tofrodos
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  debian-cd*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
(Reading database ... 164694 files and directories currently installed.)
Purging configuration files for debian-cd (3.1.35) ...

A diferència de dpkg, quan es fa el purge amb apt, s’eliminen també totes les dependències.

Inspeccionar

Hi ha diversos atributs de apt que pots utilitzar per inspeccionar:

  • apt search PARAULA_A_BUSCAR o apt-cache search: busca un paquet en concret.
  • apt show PAQUET o apt-cache show: mostra informació sobre el paquet.
  • apt-cache policy PAQUET: mostra informació sobre les versions i el repositori on està.
  • apt-cache dumpavail: mostra les capçaleres de totes les versions de tots els paquets disponibles.
  • apt-cache pkgnames: mostra els noms dels paquets que han aparegut com a mínim una vegada a la cache.

Netejar

Per evitar perdre molt d’espai al disc, es recomana anar netejant els fitxers que estan a /var/cache/apt/archives.

  • apt clean o apt-get clean: buida completament la carpeta.
  • apt autoclean o apt-get autoclean: elimina només els paquets que no es poden descarregar a través dels repositoris i que, per tant, són inútils.

Entorn gràfic

  • Aptitude: programa interactiu semi-gràfic que et permet llistar els programes instal·lats i consultar informació. Permet instal·lar programes i, si no estan al teu repositori, t’indica si estan disponibles a algun mirror. També pots utilitzar Aptitude només amb consola, la sintaxi és molt similar a la de apt.
  • Synaptic: amb entorn completament gràfic i interactiu. Permet llista, instal·lar i eliminar programes.

Deixa un comentari