Você pode especificar uma versão específica para instalar um pacote desta forma: apt-get install pkg=version
.
Mas você pode especificar uma versão mínima?
Por exemplo, quero pelo menos o gcc 8, mas estou bem com o gcc 9.
Algo assim (obviamente não funciona):apt-get install pkg>=version
Responder1
Sice apt 1.9 (lançado em 17 de junho de 2019), você pode usar apt(-get) satisfy
como:
sudo apt-get satisfy "foo (>= 1.0), bar (>= 2.0)"
A sintaxe da string de dependência é descrita aqui:
https://www.debian.org/doc/debian-policy/ch-relationships.html#syntax-of-relationship-fields
Responder2
apt
As opções de pacotes permitem ao usuário escolher entre as diversas versões de um pacote que apt
conhece; eles não permitem que o usuário especifique restrições gerais de pacote.
A abordagem mais simples para conseguir o que você procura é usar equivs
. Escreva o seguinte em um arquivo, 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.
Em seguida, construa o pacote:
equivs-build mingcc
Isso irá gerar um pacote, gcc-8-or-later_1.0_all.deb
no diretório atual ou em $TMP
. Você pode instalá-lo com apt
:
apt install ./gcc-8-or-later_1.0_all.deb
A instalação só funcionará se o GCC 8 ou posterior estiver disponível.
(Os gcc
meta-pacotes no Debian e no Ubuntu usam uma época, atualmente em 4, portanto >= 4:8
.)