Команда apt-get для установки libgdbm5 ИЛИ libgdbm6

Я написал несколько инструкций по установке, включающих команду

apt-get install libgdbm5

...но в более новых версиях ubuntu есть только libgdbm6 (думаю, впереди)

Ясно, что я мог бы написать разные инструкции для разных версий, но есть ли простой способ написать эту команду, чтобы она работала на любом ubuntu версия и установка того из двух пакетов, который доступен?

Мне было интересно, может ли apt-get install libgdbm использоваться как полезный псевдоним, но нет. Не существует.

Я подумал, может ли apt-get install libgdbm * сделать что-нибудь полезное. Такой тип работает, но устанавливает различные другие пакеты с тем же префиксом.

Я видел этот вопрос , но он не спрашивает о пакетах с числовыми суффиксами в имени.

0
задан 7 June 2021 в 13:30

2 ответа

" [Я] есть простой способ написать эту команду, чтобы она работала в любой версии 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
$ 
1
ответ дан 28 July 2021 в 11:31

...но в более новых версиях 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, чтобы лучше понять, как работают приоритеты репозиториев.

1
ответ дан 28 July 2021 в 11:31

Другие вопросы по тегам:

Похожие вопросы: