Скажем, у меня есть, foo-1.2.3.deb
что зависит perl
и python
, тем не менее, от запуска команды:
dpkg -i ./foo-1.2.3.deb
не будет устанавливать эти зависимости. Так что я должен apt-get install perl python
от руки.
Как заставить dpkg -i
установить эти зависимости для меня автоматически?
Ответы:
После использования
dpkg
, запустив следующую команду, я смог установить необходимые зависимости:В целом ваш терминал должен выглядеть так:
Обратите внимание на строку о
Setting up package_with_unsatisfied_dependencies
. Это исправляет (и завершает) установкуpackage_with_unsatisfied_dependencies.deb
.источник
sudo dpkg -i mypackage.deb
снова бежать ?sudo apt-get -f install
моего пакета и его зависимостей все было установлено. Запускsudo dpkg -i my_package.deb
не нужен и просто установит пакет снова.sudo dpkg -i package.deb; sudo apt-get -f install; sudo dpkg -i package.deb
. Первыйdpkg -i
запуск помечает зависимости,apt-get -f install
устанавливает необходимые зависимости, а второйdpkg -i
успешно устанавливает пакет. Обратите внимание, чтоapt-get install -f
это совершенно другая команда.dpkg -i --force
; это принудительно установит сломанный пакет! Запускdpkg
/ без /--force
сделает необходимую запись в базе данных пакетов, чтобыapt-get -f install
все было правильно.Вы можете установить
gdebi-core
, что является версией установщика пакета GDebi для командной строки с 10.04 и более ранних версий. В более новых версиях Ubuntu для установки дэбов используется Центр программного обеспечения, который не имеет эквивалента командной строки.Чтобы установить пакет deb с помощью gdebi, просто запустите:
источник
начиная с версии 1.1 (доступно в Xenial (16.04), stretch)
apt install
также разрешает локальные файлы:Намного проще и чище.
Смотрите анонс релиза
источник
apt ./install foo-1.2.3.deb
работала../
или путьGdebi
gdebi
устанавливает пакет deb и его зависимости. Чтобы использовать это, запустите:В более новых версиях Ubuntu он не устанавливается по умолчанию, поэтому вам нужно будет установить его из репозиториев.
Смотрите
man gdebi
полный список вариантов.gdebi
является командной строкой, эквивалентной графическому инструменту с тем же именем, который по умолчанию включался в Ubuntu. Команда для графического инструмента имеетgdebi-gtk
и имеет похожую функциональность:источник
dpkg-repack
ее на основе такого списка deps :)Бег
после установки пакета с помощью dpkg может решить проблемы с зависимостями (по крайней мере, man apt-get, скажем так ...). Я обновлю, когда я проверю это.
источник
sudo dpkg -i mypackage.deb
снова бежать ?apt-get -f install
работает, ноapt-get install -f
не то же самое.У dpkg нет поддержки зависимостей. Есть способ обойти это, но это потребует от вас создания локальной базы данных (и, таким образом, вы уже будете знать зависимости), и она считается устаревшей (...).
Это должна быть командная строка? (установка на сервер?) Если так, посмотрите также,
apt-get -f
но будьте осторожны: решение зависимостей после установки может привести к поломке системы.Gdebi (интерфейс GUI) раньше мог это делать, но его заменили на USC.
Как ты скачал .deb. Некоторые из новых возможностей 11.04 - это обработка .deb, загруженного с веб-сайта: он становится открытым в USC, поэтому установщик разрешает зависимости.
РЕДАКТИРОВАТЬ на основе комментария Эндрю:
sudo gdebi foo-1.2.3.deb
сделал бы трюк!источник
В качестве альтернативы
gdebi-gtk
вы можете использовать Ubuntu Software Center.Дважды щелкните пакет, и кнопка установки должна быть доступна.
источник
Вы можете создать файл
dpkg-dep-inst
со следующим содержанием.Я предполагаю, что вы создали файл в вашей домашней папке. Сделайте его исполняемым с
chmod +x dpkg-dep-inst
и переместите его с/usr/local/bin
помощьюsudo cp dpkg-dep-inst /usr/local/bin
.Теперь вы можете установить пакет debian с зависимостями автоматически:
источник
apt-get --yes --fix-broken install
и сделайте фиксацию автоматической.Я просто столкнулся с этой проблемой. Вызов
apt-get install -f
будет не устанавливать рекомендуемую зависимость, хотя! Единственный обходной путь для этого - создать локальный репозиторий и добавить его/etc/apt/sources.list
, то есть:источник
На самом деле ответ заключается в том, что
dpkg
менеджер пакетов не может устанавливать зависимости из коробки. Вы сняли камеруman dpkg
и выяснили это. Таким образом , вы должны использовать такие инструменты , какapt
,apt-get
,aptitude
, ..., на основеdpkg
.Я бы сказал, что точно такой же случай для
rpm
менеджера пакетов в другом полушарии Linux.rmp
не предназначен для установки на основе зависимостей. Он может устанавливать одиночные пакеты, а также для установки зависимостей , которые вы используетеyum
,urpmi
,up2date
все они основаны на RPM.Как уже отмечалось, существует небольшая опасность установки пакетов
dpkg
напрямую, потому что последующее разрешение зависимостей может привести к поломке системы, как обрисовал @Rinzwind.источник