Вопрос: Как установить локальные пакеты .deb с apt-get


Есть ли способ установить пакеты на вашем HD с помощью apt-get, например apt-get install ./package.deb?

Если нет, то как обращаться с зависимостями очень легко?


127
2017-10-07 08:02


Источник




Ответы:


обычно я делаю dpkg -i <deb file>, он не сможет сказать, что ему нужны зависимости. После этого, когда вы делаете apt-get update в конце будет сказано что-то вроде «зависимости готовы к установке». Думаю, тогда он советует использовать apt-get install -f,

Как только это будет сделано, я использую dpkg -i еще раз.

Работала для меня последние несколько лет.

edit: немного по-другому, по-видимому, инструмент, называемый gdebi может сделать это как gdebi [deb file],


108
2017-10-07 08:19



Спасибо, я сделал то же самое с помощью «ошибки» dpkg, а затем apt-get install -f, и это сработало. - Louis
gdebi работает для меня, и простейший я видел до сих пор. - ctrl-alt-delor


Сирекс имеет более или менее правильную форму, но его ответ не ясен. Я просто решил это, вот что я сделал:

sudo dpkg -i /path/to/filename.deb

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

sudo apt-get -f install

Это установит зависимости (при условии, что они доступны в репозиториях, о которых знает ваша система) И тот пакет, который вы изначально запрашивали для установки («f» - это опция «fix», а «y» - это «предположительно да для подсказок», или «не спрашивайте меня, если все в порядке, просто установите его уже» - очень полезно для сценариев без установки. В системе, в которой я был включен, не было необходимости снова запускать dpkg (Ubuntu lucid 10.04).

Мне было интересно, что если вы оставите -f при запуске sudo apt-get install, он отобразит ваш пакет как не настроенный из-за неразрешенной зависимости, а также поможет: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Редактировать:

Если вы хотите установить без необходимости отвечать на «y» на все вопросы, вы можете добавить y как я изначально включал: sudo apt-get -fy install, Однако комментатор отметил, что apt иногда предлагает удалить всю среду рабочего стола. Я делал эту работу на виртуальной машине и не беспокоился об этом, но этот пост был обновлен, чтобы быть более осторожным.


54
2018-01-16 20:21



Если у меня есть все файлы пакетов уже в каталоге, есть ли способ сказать apt, что это новый репозиторий, поэтому мне не придется принудительно устанавливать его без зависимостей? - Berry Tsakala
Извините, но я не знаю. Я бы предложил просить об этом еще один вопрос верхнего уровня. - Akrikos
Безумно странно, что это требуется. На raspian это потребует sudo (для обоих dpkg и apt-get): sudo dpkg -i mypackages.deb, и т.д. - Brent Faust
@Rubistro root нужен для всех систем. Я думаю, что ответы предполагали, что эти команды выполняются root (например, из интерактивной корневой оболочки или скрипта, выполняемого как root). - Amos Shapira
Для вас это хорошо, делайте не добавить -y вариант. Обычно apt предлагает, например, удалить всю среду рабочего стола, если вы попробуете это с неправильным пакетом в неподходящее время (по крайней мере, на Debian). - oseiskar


Вы также можете установить файл .deb с помощью gdebi. Запустите следующие команды для установки gdebi,

sudo apt-get install gdebi-core

Установите пакеты .deb с gdebi,

sudo gdebi /path/to/filename.deb

Он также фиксирует зависимости.


46
2018-01-07 17:58



Обратите внимание, что gdebi принимает только один аргумент и молча капля остальных на пол. Это означает, что если вы устанавливаете несколько deb одновременно (возможно, потому, что они зависят друг от друга), вам нужно тщательно обработать gdebi команды, которые позволяют им устанавливать. imo эта половина побеждает цель gdebi, но вы все равно можете найти ее полезной для одного файла - Anthony Sottile
@ Энтони тогда find -name *.deb -exec gdebi {} \; - jjmontes
@jjmontes, который будет работать только в том случае, если взаимозависимости в алфавитном порядке, которые я бы сделал довольно редко - Anthony Sottile
Я последовал этому freesoftwaremagazine.com/articles/... (ошибка локального репо должна была быть в / var / www / html / debs), и синаптика продолжала пытаться загрузиться с удаленной сети без интернета, поэтому gdebi отлично поработал с местным репо! Кроме того, файлы .deb должны были быть chmod +r *.deb - Aquarius Power


Да, команда, которую вы предложили, верна.

sudo apt-get install ./package.deb

будет устанавливать пакет, который вы получили из другого источника, чем APT, и использовать возможности APT в то же время, чтобы автоматически разрешать свои зависимости. К сожалению, это apt-get функция не документирована в справочная страница,

Видеть https://askubuntu.com/a/769542/250300 для деталей.


14
2017-08-26 07:13



Это должен был быть принятый ответ. - Peter