apt-get
apt VS apt-get
sources.list
- copia: /usr/share/doc/apt/examples/sources.list
- añadir universe y multiverse:sudo add-apt-repository universe sudo add-apt-repository multiverse 
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ó)
- miro quien ha firmado el certificado: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 - respuesta:subject=C = US, O = Internet Security Research Group, CN = ISRG Root X1 issuer=O = Digital Signature Trust Co., CN = DST Root CA X3 
 
- descargo el certificado raiz de Let's Encrypt (https://letsencrypt.org/certificates/)
- verifico e instalo:openssl x509 -noout -text -in isrgrootx1.pem sudo mv isrgrootx1.pem /usr/local/share/ca-certificates/isrgrootx1.crt sudo update-ca-certificates - se supone que añade a /etc/ssl/certs/ca-certificates.crt ?
 
ignorar
- ignora el server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none:- /etc/apt/apt.conf.d/80ssl-exceptions.conf
- Acquire::https::packages.sury.org::Verify-Peer "false"; Acquire::https::packages.sury.org::Verify-Host "false"; 
 
- solución temporal si ficheros de configuración:apt -o "Acquire::https::Verify-Peer=false" update 
remove app
- ver paquetes instalados:apt list --installed
- remove: elimina binarios pero no ficheros de configuración
- purgeo- remove --purge: lo elimnina todo menos las dependencias- interesante para empezar de cero
 
- autoremove: elimina paquetes huérfanos que estaban instalados como dependencia de otros
- aptitude removeo- 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.*
- para averiguar a que paquete pertenece un fichero:dpkg -S /path/al/fichero
remove unused
- apt-get clean: eliminar paquetes .deb ya instalados
- 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 remove --purge linux-image-X.X.XX-XX-generic: eliminar versiones anteriores de kernel- 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:# 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 
/via: https://www.cyberciti.biz/faq/apt-get-hold-back-packages-command/
apt-file
- equivalente ayum 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
apt-get
- 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 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 upgrade: actualiza los paquetes de soft instalados en el sistema.
- apt-get dist-upgrade: actualiza paquetes de la distribución.
- apt-get remove <paquete>: elimina el paquete del sistema
- apt-get clean: Limpiar cache de aplicaciones instaladas
- apt-get autoclean: Limpiar aplicaciones no instaladas
- apt-get autoremove: Limpiar posibles dependencias de aplicaciones desinstaladas
- apt-get install <paquete> -d: --download-only --no-download
- apt-get download <paquete>
- apt-get install <paquete> -s: --simulate
- apt-get install --reinstall <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
- sudo apt install apt-file sudo apt-file update 
- apt-file search <fichero>: busca en que paquete está un determinado archivo
- apt-file list <paquete>: lista los ficheros contenidos en un paquete
versiones
se puede mirar qué versión específica de un paquete hay disponible e instalarla:
apt-cache madison <paquete>
apt-get install <paquete>=<version>
otros
- herramienta que chequea todas las dependencias de un paquete :$ apt-rdepends <paquete>- se puede instalar directamente desde repositorio:$ apt-get install apt-rdepends
 
- apt-file: busca que paquete tiene un fichero en concreto (búsqueda de comandos)- sudo apt-file update
 
casos de uso
update kernel
- apt-cache search linux-image
- sudo apt-get install <linux-image-flavour>
- forzar el repositorio que queremos usar:sudo apt-get install -t wheezy-backports linux-image-amd64
caso de uso, comandos ejemplo
- apt-cache show linux-image-amd64
- apt-cache policy linux-image-amd64
/via: https://serverfault.com/questions/670088/install-debian-backports-kernel-automatically
trucos
solucionar bloqueo "lock"
E: Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
→ sudo rm /var/lib/apt/lists/lock
proxy debian 10 buster
- /etc/environment
- http_proxy=ipserverproxy:Puerto https_proxy=ipserverproxy:Puerto ftp_proxy=ipserverproxy:Puerto # con autentificación http_proxy=user:password@ipserverproxy:Puerto https_proxy=user:password@ipserverproxy:Puerto ftp_proxy=user:password@ipserverproxy:Puerto 
- /etc/apt/apt.conf.d/02proxy
- Acquire { HTTP::proxy "http://PROXYSERVERIP:PROXYPORT"; HTTPS::proxy "http://PROXYSERVERIP:PROXYPORT"; } # con autentificación (sin agrupar es opcional) Acquire::http::Proxy «http://usuario:password@ipserverproxy:puerto»; Acquire::ftp::Proxy «ftp://usuario:password@ipserverproxy:puerto»;
/via:
proxy con autentificación
editar con este comando: sudo gedit /etc/apt/apt.conf o si hemos hecho el paso ubuntu 11.10 hacer solo esto: sudo cp /etc/apt/apt.conf.d/02proxy /etc/apt/apt.conf
<code> Acquire::http::Proxy “http://usuario:contraseña@proxy:puerto″; Acquire::https::Proxy “http://usuario:contraseña@proxy:puerto″; Acquire::ftp::Proxy “http://usuario:contraseña@proxy:puerto″; Acquire::socks::Proxy “http://usuario:contraseña@proxy:puerto″;
fuente: http://www.linuxquestions.org/questions/ubuntu-63/problems-with-apt-get-synaptic-and-proxy-454026/
proxy con autentificación (a partir de ubuntu 11.10?)
editar con este comando: sudo gedit /etc/apt/apt.conf.d/02proxy
añadir: 
Acquire::http::Proxy “http://usuario:contraseña@proxy:puerto″; Acquire::https::Proxy “http://usuario:contraseña@proxy:puerto″; Acquire::ftp::Proxy “http://usuario:contraseña@proxy:puerto″; Acquire::socks::Proxy “http://usuario:contraseña@proxy:puerto″;
fuente: http://naveenubuntu.blogspot.com.es/2011/09/updating-packages-behind-prxy-in-ubuntu.html