Как разрешить мне устанавливать зависимости `dpkg -i`?

Скажем, у меня есть foo-1.2.3.deb , который зависит от perl и python , но работает команда:

  dpkg -i ./foo-1.2.3.deb
 

не будет устанавливать эти зависимости. Поэтому я должен apt-get установить perl python вручную.

Как сделать dpkg -i автоматически установить эти зависимости для меня?

254 голоса | спросил Xiè Jìléi 4 Maypm11 2011, 17:11:44

9 ответов


343

После использования dpkg выполнение следующей команды помогло мне установить необходимые зависимости:

  sudo apt-get -f install
 

В целом, ваш терминал должен выглядеть так:

  $ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: проблемы с зависимостью предотвращают ...
[дополнительные сообщения]

$ sudo apt-get -f install
[apt messages]
Настройка [зависимости] ...
Настройка package_with_unsatisfied_dependencies ...
 

Обратите внимание на строку о Настройка package_with_unsatisfied_dependencies . Этот исправляет (и завершает) установку package_with_unsatisfied_dependencies.deb .

ответил Arindom 4 Maypm11 2011, 19:38:39
108

Вы можете установить gdebi-core , который представляет собой версию командной строки установщика пакета GDebi с 10.04 и ранее. В новых версиях Ubuntu Центр программного обеспечения используется для установки deb, который не имеет эквивалента командной строки.

Чтобы установить пакет deb с помощью gdebi, просто запустите:

  sudo gdebi my_package_1.0.deb
 
ответил Andrew Gunnerson 4 Maypm11 2011, 18:47:13
35

Gdebi

gdebi устанавливает пакет deb и его зависимости. Чтобы использовать его, выполните:

  sudo gdebi package.deb
 

В новых версиях Ubuntu это не установлено по умолчанию, поэтому вам нужно будет установить его из репозиториев.

Подробнее о параметрах см. man gdebi .

gdebi - это командная строка, эквивалентная графическому инструменту с тем же именем, которое по умолчанию было включено в Ubuntu. Команда для графического инструмента - gdebi-gtk и имеет аналогичную функциональность:

gdebi-gtk

ответил dv3500ea 4 Maypm11 2011, 20:56:35
25

, начиная с apt 1.1 (доступно в Xenial (16.04), растянуть) apt install также позволяет локальные файлы:

  sudo apt install ./foo-1.2.3.deb
 

Так намного проще и чище.

См. объявление о выпуске

ответил textshell 5 J000000Tuesday16 2016, 12:23:49
18

работает

  sudo apt-get install -f
 

после установки пакета с dpkg может разрешить разбитые варианты (по крайней мере, man apt-get сказать так ...). Я обновляю, когда проверю его.

ответил Denwerko 4 Maypm11 2011, 17:17:11
8

dpkg не поддерживает зависимость. Существует способ обойти это, но это потребует от вас создания локальной базы данных (и, следовательно, вы уже знаете зависимости), и считается устаревшим (...).

Нужно ли быть командной строкой? (установка сервера?) Если это так, посмотрите на apt-get -f , но будьте осторожны: решение зависимостей после установки может привести к повреждению системы.

gdebi (gui frontend) имел обыкновение делать это, но был заменен USC.

Как вы загрузили .deb. Некоторые из новых возможностей 11.04 - это обработка .deb, загружаемая с веб-сайта: она открывается в USC, поэтому зависимости будут решены установщиком.

EDIT, основанный на комментарии andrew: sudo gdebi foo-1.2.3.deb сделал бы трюк !!

ответил Rinzwind 4 Maypm11 2011, 17:32:53
3

В качестве альтернативы gdebi-gtk вы можете использовать программный центр Ubuntu.

Двойной щелчок по пакету и кнопка установки должна быть доступна.

ответил Henrique 10 Mayam11 2011, 11:55:17
3

Вы можете создать файл dpkg-dep-inst со следующим контентом.

  #! /Bin /Баш

DEBIAN_FILE1 = $ 1
dpkg -i $ DEBIAN_FILE1 || apt-get --fix-broken install
 

Я предполагаю, что вы создали файл в своей домашней папке. Сделайте его исполняемым с помощью chmod + x dpkg-dep-inst и переместите его в /usr /local /bin с помощью sudo cp dpkg-dep-inst /usr /местные /бен .

Теперь вы можете установить пакет debian с зависимостями автоматически:

  sudo dpkg-dep-inst foo-1.2.3.deb
 
ответил BuZZ-dEE 28 Jpm1000000pmMon, 28 Jan 2013 20:01:32 +040013 2013, 20:01:32
1

Я столкнулся с этой проблемой. Вызов apt-get install -f будет не устанавливать рекомендуемые зависимости, хотя! Единственным обходным решением для этого было бы создание локального репозитория и добавление к /etc/apt/sources.list , то есть:

  apt-ftparchive пакеты. & GT; Пакеты & amp; & amp; gzip <Пакеты> Packages.gz
sudo echo "deb file: //$ PWD /">>>> /etc/apt/sources.list
Обновление sudo apt-get
 
ответил Alex Kläser 10 FebruaryEurope/MoscowbWed, 10 Feb 2016 18:19:04 +0300000000pmWed, 10 Feb 2016 18:19:04 +030016 2016, 18:19:04

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132