Puede especificar una versión específica para instalar un paquete de esta manera: apt-get install pkg=version
.
¿Pero puedes especificar una versión mínima?
Por ejemplo, quiero al menos gcc 8, pero estoy bien con gcc 9.
Algo como esto (obviamente no funciona):apt-get install pkg>=version
Respuesta1
Desde apt 1.9 (lanzado el 17 de junio de 2019), puedes usar apt(-get) satisfy
como:
sudo apt-get satisfy "foo (>= 1.0), bar (>= 2.0)"
La sintaxis de la cadena de dependencia se describe aquí:
https://www.debian.org/doc/debian-policy/ch-relationships.html#syntax-of-relationship-fields
Respuesta2
apt
Las opciones de paquetes permiten al usuario elegir entre las distintas versiones de un paquete que apt
conoce; no permiten al usuario especificar restricciones generales del paquete.
El método más sencillo para lograr lo que buscas es utilizar equivs
. Escriba lo siguiente en un archivo, digamos mingcc
:
Section: devel
Priority: optional
Standards-Version: 4.5.0
Package: gcc-8-or-later
Depends: gcc (>= 4:8)
Description: dependency package ensuring GCC 8 or later is installed
This meta-package ensures that GCC 8 or later is installed.
Luego construye el paquete:
equivs-build mingcc
Esto generará un paquete, gcc-8-or-later_1.0_all.deb
ya sea en el directorio actual o en $TMP
. Puedes instalarlo con apt
:
apt install ./gcc-8-or-later_1.0_all.deb
La instalación solo funcionará si GCC 8 o posterior está disponible.
(Los gcc
metapaquetes en Debian y Ubuntu usan una época, actualmente en 4, por lo tanto >= 4:8
).