| Ambdós costats versió prèvia Revisió prèvia Següent revisió | Revisió prèvia |
| linux:aptget:apt [13/02/2021 03:08] – [otros] mate | linux:aptget:apt [10/03/2025 03:03] (actual) – admin |
|---|
| * [[https://itsfoss.com/apt-command-guide/]] | * [[https://itsfoss.com/apt-command-guide/]] |
| |
| | == sources.list |
| | * copia: **/usr/share/doc/apt/examples/sources.list** |
| | * añadir **universe** y **multiverse**:<code bash>sudo add-apt-repository universe |
| | sudo add-apt-repository multiverse</code> |
| | |
| | == ignore certificate |
| | Cuando estamos en una versión vieja de algún linux (debian 9 strech en este caso), podemos intentar encontrar la manera de actualizar los certificados o simplemente ignorarlo) |
| | |
| | Estamos hablando de ignorar que que no se puede verificar la validez del certificado (ataques man-in-the-midle), porque no diponemos de los certificados raiz del que firma ese certificado. |
| | |
| | === añadir (no me funcionó) |
| | * [[https://stackoverflow.com/questions/21181231/server-certificate-verification-failed-cafile-etc-ssl-certs-ca-certificates-c/67698986#67698986]] |
| | * miro quien ha firmado el certificado:<code bash>echo -n | openssl s_client -showcerts -servername packages.sury.org -connect packages.sury.org:443 2>/dev/null | tac | awk '/-END CERTIFICATE-/{f=1} f;/-BEGIN CERTIFICATE-/{exit}' | tac | openssl x509 -noout -subject -issuer</code> |
| | * respuesta:<code>subject=C = US, O = Internet Security Research Group, CN = ISRG Root X1 |
| | issuer=O = Digital Signature Trust Co., CN = DST Root CA X3</code> |
| | * descargo el certificado raiz de Let's Encrypt (https://letsencrypt.org/certificates/) |
| | * verifico e instalo:<code bash>openssl x509 -noout -text -in isrgrootx1.pem |
| | sudo mv isrgrootx1.pem /usr/local/share/ca-certificates/isrgrootx1.crt |
| | sudo update-ca-certificates |
| | </code> |
| | * se supone que añade a **/etc/ssl/certs/ca-certificates.crt** ? |
| | |
| | === ignorar |
| | * [[https://unix.stackexchange.com/questions/317695/is-it-possible-to-have-apt-accept-an-invalid-certificate]] |
| | * ignora el **server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none**:<code; /etc/apt/apt.conf.d/80ssl-exceptions.conf> |
| | Acquire::https::packages.sury.org::Verify-Peer "false"; |
| | Acquire::https::packages.sury.org::Verify-Host "false"; |
| | </code> |
| | * solución temporal si ficheros de configuración: <code bash>apt -o "Acquire::https::Verify-Peer=false" update</code> |
| == remove app | == remove app |
| * ver paquetes instalados: ''apt list %%--%%installed'' | * ver paquetes instalados: ''apt list %%--%%installed'' |
| * ''apt-get autoclean'' : eliminar paquetes que ya no existen en el repositorio o que tienen versiones posteriores | * ''apt-get autoclean'' : eliminar paquetes que ya no existen en el repositorio o que tienen versiones posteriores |
| * ''apt-get autoremove'' : eliminar paquetes vinculados a otros y que no son necesarios | * ''apt-get autoremove'' : eliminar paquetes vinculados a otros y que no son necesarios |
| * ''apt-get remove --purge linux-image-X.X.XX-XX-generic'' : eliminar versiones anteriores de kernel | * ''apt-get remove %%--%%purge linux-image-X.X.XX-XX-generic'' : eliminar versiones anteriores de kernel |
| * ''dpkg %%--get-selections%% | grep linux-image'' | * ''dpkg %%--get-selections%% | grep linux-image'' |
| |
| | == apt-mark |
| | marcar paquetes que no serán actualizados. |
| | * ''apt-mark hold <paquete> <paquete>...'' |
| | * ''apt-mark unhold <paquete>'' |
| | * ''apt-mark'' |
| | * **auto**: marca los paquetes como instalables automaticamente. Si ningún otro paquete depende de él, se desinstala (como la satisfacción de dependencias cuando instalas un paquete) |
| | * **hold**: paquete retenido |
| | * **manual**: marca los paquetes como instalables manualmente. Aunque no haya paquetes que no dependan de él, no será desinstalado automaticamente.q |
| | * **showauto**: lista de paquetes marcados como automaticos |
| | * **showhold**: lista de paquetes marcados como retenidos |
| | * **showmanual**: lista de paquetes marcados como manual |
| | * **unhold**: desmarca paquete retenido |
| | * ansible:<code yaml># Prevent nginx from being upgraded |
| | - dpkg_selections: |
| | name: python |
| | selection: hold |
| | |
| | # Kept multiple packages back (hold packages) |
| | - dpkg_selections: name={{ item }} selection=hold |
| | with_items: |
| | - apache2 |
| | - php7-fpm |
| | - nginx |
| | - mariadb-server |
| | |
| | # Removing hold using Ansible |
| | - dpkg_selections: |
| | name: python |
| | selection: install</code> |
| | /via: [[https://www.cyberciti.biz/faq/apt-get-hold-back-packages-command/]] |
| | |
| | == apt-file |
| | * equivalente a ''yum provides'' |
| | * ''apt install apt-file'' |
| | * ''apt-file update'' |
| | * ''apt-file search <file>'' |
| | /via: [[https://sysadmincasts.com/episodes/41-cli-monday-apt-file-and-yum-provides]] |
| == comandos | == comandos |
| * ''$ apt-get update'' : actualiza la lista de paquetes de los repositorios indicados en sources.list. Es lo primero que se debe hacer antes de instalar nada. | === apt-get |
| * ''$ apt-get install <paquete>'' : una vez conocemos el paquete que queremos instalar, lo indicamos y a descargar. APT-GET nos informará de que se descarga, que se actualiza, que otros paquetes se instalan relacionados con este, la cantidad de espacio que ocupará, etc... | * ''apt-get update'' : actualiza la lista de paquetes de los repositorios indicados en sources.list. Es lo primero que se debe hacer antes de instalar nada. |
| * ''$ apt-get upgrade'': actualiza los paquetes de soft instalados en el sistema. | * ''apt-get install <paquete>'' : una vez conocemos el paquete que queremos instalar, lo indicamos y a descargar. APT-GET nos informará de que se descarga, que se actualiza, que otros paquetes se instalan relacionados con este, la cantidad de espacio que ocupará, etc... |
| * ''$ apt-cache search <cadena>'' : sirve para buscar la <cadena> en los repositorios y ver si encontramos el paquete que coincida. A veces ayuda si ya sabes el nombre del paquete ;) | * ''apt-get upgrade'': actualiza los paquetes de soft instalados en el sistema. |
| * ''$ apt-get dist-upgrade'' : actualiza paquetes de la distribución. | * ''apt-get dist-upgrade'' : actualiza paquetes de la distribución. |
| * ''$ apt-get remove <paquete>'' : elimina el paquete del sistema | * ''apt-get remove <paquete>'' : elimina el paquete del sistema |
| * ''$ apt-get clean'' : Limpiar cache de aplicaciones instaladas | * ''apt-get clean'' : Limpiar cache de aplicaciones instaladas |
| * ''$ apt-get autoclean'' : Limpiar aplicaciones no instaladas | * ''apt-get autoclean'' : Limpiar aplicaciones no instaladas |
| * ''$ apt-get autoremove'' : Limpiar posibles dependencias de aplicaciones desinstaladas | * ''apt-get autoremove'' : Limpiar posibles dependencias de aplicaciones desinstaladas |
| * ''$ apt-get install <paquete> -d'' : --download-only --no-download | * ''apt-get install <paquete> -d'' : %%--%%download-only %%--%%no-download |
| * ''$ apt-get download <paquete>'' | * ''apt-get download <paquete>'' |
| * ''$ apt-get install <paquete> -s'' : --simulate | * ''apt-get install <paquete> -s'' : %%--%%simulate |
| * ''$ apt-get install -reinstall <paquete>'' | * ''apt-get install %%--%%reinstall <paquete>'' |
| * ''$ apt-file search <fichero>'' : busca en que paquete está un determinado archivo | |
| * ''$ apt-file list <paquete>'' : lista los ficheros contenidos en un paquete | === apt |
| | * ''apt list %%--%%installed | grep libc6'' |
| | === apt-cache |
| | * ''apt-cache search <cadena>'' : sirve para buscar la <cadena> en los repositorios y ver si encontramos el paquete que coincida. A veces ayuda si ya sabes el nombre del paquete ;) |
| | * ''apt-cache policy'' : comprueba el estado de los repositorios existentes |
| | === apt-file |
| | * <code bash>sudo apt install apt-file |
| | sudo apt-file update</code> |
| | * ''apt-file search <fichero>'' : busca en que paquete está un determinado archivo |
| | * ''apt-file list <paquete>'' : lista los ficheros contenidos en un paquete |
| |
| === versiones | === versiones |
| se puede mirar que versión específica de un paquete hay disponible e instalarla: | se puede mirar qué versión específica de un paquete hay disponible e instalarla: |
| <code bash>apt-cache madison <paquete></code> | <code bash>apt-cache madison <paquete></code> |
| <code bash>apt-get install <paquete>=<version></code> | <code bash>apt-get install <paquete>=<version></code> |
| * ''apt-cache policy linux-image-amd64'' | * ''apt-cache policy linux-image-amd64'' |
| /via: [[https://serverfault.com/questions/670088/install-debian-backports-kernel-automatically]] | /via: [[https://serverfault.com/questions/670088/install-debian-backports-kernel-automatically]] |
| |
| |
| == crear paquete .deb | |
| para crear un paquete en el que incluir el software que queramos distribuir (por la razón que sea) hemos de: | |
| - crear una estructura de directorios determinada (ver más adelante) | |
| - ejecutar <code bash>dpkg-deb -b <PATH>/ .</code> | |
| === estructura directorio | |
| <code> | |
| .—— DEBIAN | |
| ¦ ¦—— control | |
| ¦—— <ubicación archivos en root sistema> | |
| ¦—— <ubicación archivos en root sistema> | |
| </code> | |
| <code txt control> | |
| Package: ibscanultimate | |
| Version: 3.0.0-1 | |
| Maintainer: You <whatever@contact.address> | |
| Architecture: amd64 | |
| Description: IBScanUltimate | |
| Software for the integrated biomedics kojak scanner | |
| </code> | |
| |
| ejemplo: {{ :linux:aptget:construccio_manual_paquet_debian.tar.gz |}} | |
| |
| == trucos | == trucos |