Я написал несколько инструкций по установке, включающих команду
apt-get install libgdbm5
...но в более новых версиях ubuntu есть только libgdbm6
(думаю, впереди)
Ясно, что я мог бы написать разные инструкции для разных версий, но есть ли простой способ написать эту команду, чтобы она работала на любом ubuntu версия и установка того из двух пакетов, который доступен?
Мне было интересно, может ли apt-get install libgdbm
использоваться как полезный псевдоним, но нет. Не существует.
Я подумал, может ли apt-get install libgdbm *
сделать что-нибудь полезное. Такой тип работает, но устанавливает различные другие пакеты с тем же префиксом.
Я видел этот вопрос , но он не спрашивает о пакетах с числовыми суффиксами в имени.
" [Я] есть простой способ написать эту команду, чтобы она работала в любой версии ubuntu и устанавливала любой из двух доступных пакетов? "
Вы не должны явно устанавливать в любом случае библиотеки. Вы должны устанавливать приложения и позволять apt выяснять зависимости. Вот для чего подходит.
NO: sudo apt install python3-gdbm libgdbm6
YES: sudo apt install python3-gdbm
Если вы все же действительно хотите указать библиотеки, вы должны сначала проверить доступную версию в своем скрипте.
$ apt list libgdbm6
Listing... Done
libgdbm6/hirsute,now 1.19-2 amd64 [installed,automatic]
$ dpkg -l | grep libgdbm6
ii libgdbm6:amd64 1.19-2
amd64 GNU dbm database routines (runtime version)
$ apt list libgdbm5
Listing... Done
$
$ dpkg -l | grep libgdbm5
$
...но в более новых версиях ubuntu есть только
libgdbm6
Действительно: согласно https://packages.ubuntu.com/search?keywords=libgdbm5 , libgdm5
доступен только в Bionic (18. 04LTS), тогда как libgdm6
(см. https://packages.ubuntu.com/search?keywords=libgdbm6) доступен в Focal (20.04LTS), Groovy (20.10) и Hirsuite (21.04).
Следовательно, в репозиториях пакетов Focal/Groovy/Hirsuite не должно быть ни одного пакета, который зависит от libgdbm5
(или от любого недоступного пакета, если на то пошло).
Если в вашем экземпляре APT не настроены репозитории Bionic, вы никак не сможете установить libgdm5
, независимо от псевдонимов пакетов или виртуальных (предоставляемых) пакетов.
Подход здесь заключается в том, чтобы добавить репозиторий Bionic в вашу конфигурацию APT. Я предлагаю сделать это, создав файл /etc/apt/sources.list.d/bionic.list
и поместив туда соответствующую конфигурацию deb
репозитория. Чтобы добиться этого, нужно выполнить следующие действия
sudo echo "deb http://in.archive.ubuntu.com/ubuntu/ bionic main restricted universe" > /etc/apt/sources.list.d/bionic.list
... затем apt-get update
и apt-get install libgdbm6
.
Также помните, что по умолчанию репозитории для вашего релиза должны иметь приоритет над любыми другими репозиториями, определенными в /etc/apt/sources.list.d
. Прочитайте https://wiki.debian.org/AptConfiguration, чтобы лучше понять, как работают приоритеты репозиториев.