Как автоматически извлекать недостающие зависимости при установке программного обеспечения из .deb?

Я пытаюсь установить MySQL Workbench на моем ящике Ubuntu (11.04). На веб-сайте есть Ubuntu .deb доступен для скачивания (для 10.10 и 10.04, поэтому я выбрал 10.10).

Однако,

sudo dpkg -i mysql-workbench-gpl-5.2.34-1ubu1010-amd64.deb

доходность:

(Reading database ... 194069 files and directories currently installed.)Preparing to replace mysql-workbench-gpl 5.2.34-1ubu1010 (using mysql-workbench-gpl-5.2.34-1ubu1010-amd64.deb) ...Unpacking replacement mysql-workbench-gpl ...dpkg: dependency problems prevent configuration of mysql-workbench-gpl: mysql-workbench-gpl depends on libctemplate0; however:  Package libctemplate0 is not installed. mysql-workbench-gpl depends on libpython2.6 (>= 2.6); however:  Package libpython2.6 is not installed. mysql-workbench-gpl depends on libzip1 (>= 0.8); however:  Package libzip1 is not installed. mysql-workbench-gpl depends on python-paramiko; however:  Package python-paramiko is not installed. mysql-workbench-gpl depends on python-pysqlite2; however:  Package python-pysqlite2 is not installed.dpkg: error processing mysql-workbench-gpl (--install): dependency problems - leaving unconfiguredProcessing triggers for bamfdaemon ...Rebuilding /usr/share/applications/bamf.index...Processing triggers for desktop-file-utils ...Processing triggers for python-gmenu ...Rebuilding /usr/share/applications/desktop.en_US.utf8.cache...Processing triggers for python-support ...Errors were encountered while processing: mysql-workbench-gpl

Мой вопрос заключается в следующем, есть ли способ указать dpkg автоматически извлекать недостающие зависимости, или мне нужно вручную apt-get install отсутствуют такие пакеты, как libctemplate0 и libpython2.6?

(Или, в качестве альтернативы, есть ли какой-то другой способ легко запустить MySQL Workbench?)

Вы можете установить пакет и получить зависимости из репозиториев с помощью

sudo gdebi package.deb

Если вы уже установили пакет с пропущенными зависимостями, вы можете автоматически загружать и устанавливать зависимости с помощью

sudo apt-get -f install

Также доступна графическая версия gdebi-gtk, связанный с .deb nautilus щелкните правой кнопкой мыши действие "Открыть с помощью установщика пакетов GDebi".

Начиная с ветки 1.1 и далее, apt-get поддерживает установку локальных пакетов вместе с зависимостями в виде:

sudo apt-get install ./your-package.deb

Обратите внимание на ./ перед именем файла пакета, которое является обязательным, в противном случае имя будет использоваться как имя пакета, а не как имя файла.

dpkg сам не способен управлять репозиториями. Инструмент более высокого уровня, такой как apt-get требуется для извлечения чего-либо из репозиториев. dkpg является лишь основной инструмент который устанавливает /удаляет/настраивает пакеты, заботясь о зависимостях и других факторах. apt-get и aptitude это инструменты, которые управляют репозиториями, загружают из них данные и использовать dkpg для установки/ удаления пакетов из них. Это означает, что apt-get и aptitude может разрешать зависимости и получать необходимые пакеты из репозитория, но dpkg не может, потому что знает ничего о репозиториях.

Вы можете использовать apt-get -f install для установки всех пакетов dpkg -i жалуется на (но, глядя на ваш вопрос, вы, вероятно, знали это ;) ).

gdebi может быть, это лучшая альтернатива.

Description: Simple tool to install deb filesgdebi lets you install local deb packages resolving and installing its dependencies. apt does the same, but only for remote (http, ftp) located packages. 

На 3-й ноте... gdebi был заменен Центром программного обеспечения Ubuntu. Если вы установите .deb из GDM (nautilus), USC возьмет на себя управление и попытается установить deb. И это включает в себя зависимости. То есть, если вы не привязаны к командной строке ;)

Эта конкретная библиотека(libctemplate0) Я скачал его с

http://packages.ubuntu.com/lucid/amd64/libctemplate0/download

Прямая ссылка http://ubuntu.wikimedia.org/ubuntu//pool/universe/c/ctemplate/libctemplate0_0.96-0ubuntu1_amd64.deb

После этого установка MySQL-workbench прошла гладко.

Щелкните правой кнопкой мыши на файле пакета и выберите "открыть с помощью Ubuntu software center", он установит все для вас.

АФАИК, dpkg не предоставляет механизма для разрешения зависимостей. Он проверяет / предупреждает о наличии зависимостей, но не выполняет никаких дальнейших действий. Вам придется решать проблемы самостоятельно.

Как говорится в вики Debian здесь:

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

Поэтому я думаю, что вам придется использовать apt-get или aptitude для того, чтобы установить интересующий вас пакет, а также любые связанные с ним зависимости.

Поскольку этого пакета нет в репозиториях 11.04, просто запустите:

sudo apt-get install libctemplate0 libzip1 libpython2.6 python-pysqlite2 python-paramikosudo dpkg -i mysql-workbench-gpl-5.2.34-1ubu1010-amd64.deb

и с тобой все должно быть в порядке.

@Braiam: как этот вопрос может быть дубликатом вопроса, опубликованного три месяца спустя?

На этот вопрос есть лучшие ответы, и он гораздо более популярен из двух, так что действительно другой one должен быть помечен как дубликат этого.

@Jonik Прямо сейчас этот вопрос имеет 221 988 просмотров, а вопрос, который он закрыл как дубликат, имеет 241 929 просмотров, так что если когда-то он был более популярным из двух, то теперь его нет. Что касается качества ответов, будет ли достаточно, чтобы ответы здесь просто были объединены в другой вопрос? Модераторы могут это сделать (если мы попросим их и они согласятся). Ответы появятся на другой вопрос (вместе с ответами на него), а не на этот. Этот вопрос все еще существовал бы и по-прежнему был бы связан с другим вопросом и продолжал бы помогать людям находить ответы. Что вы об этом думаете?

О, это мой вопрос 6-летней давности. :slight_smile: Честно говоря, я не думаю, что это имеет большое значение. Я бы просто оставил все как есть. Слияние мутит воду, поскольку некоторые ответы неизбежно становятся оффтопическими. Если вы * должны * что-то сделать, тогда идите вперед и делайте то, что кажется разумным.