linux:aptget:apt

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Ambdós costats versió prèvia Revisió prèvia
Següent revisió
Revisió prèvia
linux:aptget:apt [10/03/2020 00:59] – [proxy debian 10 buster] matelinux:aptget:apt [10/03/2025 03:03] (actual) admin
Línia 6: Línia 6:
   * [[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''
   * [[https://askubuntu.com/questions/187888/what-is-the-correct-way-to-completely-remove-an-application]]   * [[https://askubuntu.com/questions/187888/what-is-the-correct-way-to-completely-remove-an-application]]
   * ''remove'' : elimina binarios pero no ficheros de configuración   * ''remove'' : elimina binarios pero no ficheros de configuración
-  * ''purge'' o '' remove --purge'' : lo elimnina todo menos las dependencias+  * ''purge'' o '' remove %%--%%purge'' : lo elimnina todo menos las dependencias
     * interesante para empezar de cero     * interesante para empezar de cero
   * ''autoremove'' : elimina paquetes huérfanos que estaban instalados como dependencia de otros   * ''autoremove'' : elimina paquetes huérfanos que estaban instalados como dependencia de otros
-  * ''aptitude renove'' o ''aptitude purge'' : también elimina paquetes no ya requeridos (a menos que los necesite otro paquete). **aptitude** solo recuerda la información de dependencia de los paquetes que han sido instalados desde **aptitude**+  * ''aptitude remove'' o ''aptitude purge'' : también elimina paquetes no ya requeridos (a menos que los necesite otro paquete). **aptitude** solo recuerda la información de dependencia de los paquetes que han sido instalados desde **aptitude**
   * ''sudo apt-get remove "%%^aplicaciont.*%%''   * ''sudo apt-get remove "%%^aplicaciont.*%%''
   * para averiguar a que paquete pertenece un fichero: ''dpkg -S /path/al/fichero''   * para averiguar a que paquete pertenece un fichero: ''dpkg -S /path/al/fichero''
Línia 21: Línia 50:
   * ''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>
Línia 50: Línia 125:
     * se puede instalar directamente desde repositorio: ''$ apt-get install apt-rdepends''     * se puede instalar directamente desde repositorio: ''$ apt-get install apt-rdepends''
   * [[linux:aptget:repositorios]]   * [[linux:aptget:repositorios]]
 +  * ''apt-file'': busca que paquete tiene un fichero en concreto (búsqueda de comandos)
 +    * ''sudo apt-file update''
 +    * [[https://sysadmincasts.com/episodes/41-cli-monday-apt-file-and-yum-provides]]
  
 == casos de uso == casos de uso
Línia 61: Línia 139:
   * ''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
  • linux/aptget/apt.1583827185.txt.gz
  • Darrera modificació: 10/03/2020 00:59
  • per mate