Скажем, у меня есть foo-1.2.3.deb, который зависит от perl и python, однако работающая команда:
dpkg -i ./foo-1.2.3.deb
не будет устанавливать эти зависимости. Поэтому я должен apt-get install perl python вручную.
Как сделать dpkg -i автоматически устанавливать эти зависимости для меня?
После использования dpkg выполнение следующей команды помогло мне установить необходимые зависимости:
sudo apt-get -f install
В общем, ваш терминал должен выглядеть так:
$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ...
[additional messages]
$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...
Обратите внимание на строку Setting up package_with_unsatisfied_dependencies. Это исправляет (и завершает) установку package_with_unsatisfied_dependencies.deb.
После использования dpkg выполнение следующей команды помогло мне установить необходимые зависимости:
sudo apt-get -f install
В общем, ваш терминал должен выглядеть так:
$ sudo dpkg -i package_with_unsatisfied_dependencies.deb
dpkg: dependency problems prevent ...
[additional messages]
$ sudo apt-get -f install
[apt messages]
Setting up [dependency]...
Setting up package_with_unsatisfied_dependencies...
Обратите внимание на строку Setting up package_with_unsatisfied_dependencies. Это исправляет (и завершает) установку package_with_unsatisfied_dependencies.deb.
Я просто столкнулся с этой проблемой. Вызов apt-get install -f не будет устанавливать рекомендуемые зависимости, хотя! Единственным обходным решением для этого было бы создание локального репозитория и добавление к /etc/apt/sources.list, т. Е .:
apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update
Вы можете установить gdebi-core, это версия командной строки установщика пакета GDebi с 10.04 и ранее. В новых версиях Ubuntu Центр программного обеспечения используется для установки debs, который не имеет эквивалента командной строки.
Чтобы установить пакет deb с помощью gdebi, просто запустите:
sudo gdebi my_package_1.0.deb
running
sudo apt-get install -f
после установки пакета с dpkg может разрешить разбитые зависимости (по крайней мере, man apt-get сказать так ...). Ill update, когда я его проверю.
В качестве альтернативы gdebi-gtk вы можете использовать Ubuntu Software Center.
Двойной щелчок по пакету и кнопка установки должна быть доступна.
dpkg не поддерживает зависимость. Существует способ обойти это, но для этого потребуется создать локальную базу данных (и, следовательно, вы уже знаете зависимости), и считается устаревшей (...).
Должна ли она быть командой линия? (server install?) Если это так, посмотрите на apt-get -f, но будьте осторожны: решение зависимостей после установки может привести к повреждению системы.
gdebi (gui frontend) раньше имел возможность сделайте это, но замените USC.
Как вы загрузили .deb. Некоторые из новых возможностей 11.04 - это обработка .deb, загружаемая с веб-сайта: она открывается в USC, поэтому зависимости будут решены установщиком.
EDIT, основанный на комментарии andrew: sudo gdebi foo-1.2.3.deb сделал бы трюк !!
Вы можете создать файл dpkg-dep-inst со следующим содержимым.
#!/bin/bash
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/local/bin.
Теперь вы можете установить пакет debian с зависимостями автоматически с помощью:
sudo dpkg-dep-inst foo-1.2.3.deb
, начиная с apt 1.1 (доступно в Xenial (16.04), растянуть) apt install также позволяет локальные файлы:
sudo apt install ./foo-1.2.3.deb
. Так проще и чище.
См. релиз объявления
Я просто столкнулся с этой проблемой. Вызов apt-get install -f не будет устанавливать рекомендуемые зависимости, хотя! Единственным обходным решением для этого было бы создание локального репозитория и добавление к /etc/apt/sources.list, т. Е .:
apt-ftparchive packages . > Packages && gzip < Packages > Packages.gz
sudo echo "deb file://$PWD /" >> /etc/apt/sources.list
sudo apt-get update
Вы можете установить gdebi-core, это версия командной строки установщика пакета GDebi с 10.04 и ранее. В новых версиях Ubuntu Центр программного обеспечения используется для установки debs, который не имеет эквивалента командной строки.
Чтобы установить пакет deb с помощью gdebi, просто запустите:
sudo gdebi my_package_1.0.deb
running
sudo apt-get install -f
после установки пакета с dpkg может разрешить разбитые зависимости (по крайней мере, man apt-get сказать так ...). Ill update, когда я его проверю.
В качестве альтернативы gdebi-gtk вы можете использовать Ubuntu Software Center.
Двойной щелчок по пакету и кнопка установки должна быть доступна.
dpkg не поддерживает зависимость. Существует способ обойти это, но для этого потребуется создать локальную базу данных (и, следовательно, вы уже знаете зависимости), и считается устаревшей (...).
Должна ли она быть командой линия? (server install?) Если это так, посмотрите на apt-get -f, но будьте осторожны: решение зависимостей после установки может привести к повреждению системы.
gdebi (gui frontend) раньше имел возможность сделайте это, но замените USC.
Как вы загрузили .deb. Некоторые из новых возможностей 11.04 - это обработка .deb, загружаемая с веб-сайта: она открывается в USC, поэтому зависимости будут решены установщиком.
EDIT, основанный на комментарии andrew: sudo gdebi foo-1.2.3.deb сделал бы трюк !!
Вы можете создать файл dpkg-dep-inst со следующим содержимым.
#!/bin/bash
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/local/bin.
Теперь вы можете установить пакет debian с зависимостями автоматически с помощью:
sudo dpkg-dep-inst foo-1.2.3.deb
, начиная с apt 1.1 (доступно в Xenial (16.04), растянуть) apt install также позволяет локальные файлы:
sudo apt install ./foo-1.2.3.deb
. Так проще и чище.
См. релиз объявления