Як встановити локальні пакети .deb з apt-get


144

Чи є спосіб встановити зберігання пакетів на вашому HD з допомогою apt-get, наприклад apt-get install ./package.deb?

Якщо ні, то як впоратися із залежностями дуже-дуже просто?


Це працює зараз. Якщо ви все ще використовуєте SuperUser, чи можете ви оновити прийняту відповідь? Дивіться нижче.
mikemaccana

Відповіді:


121

як правило, я не можу dpkg -i <deb file>сказати, що йому потрібні залежності. Після цього, коли ви це зробите, apt-get updateто в кінці ви будете говорити щось на кшталт "залежності готові встановити", я вважаю, що це радить використовувати apt-get install -f.

Після цього я dpkg -iзнову використовую .

Мені непогано працювали останні кілька років.

Редагування: дивлячись трохи далі, по- видимому, інструмент під назвою gdebiможе зробити це gdebi [deb file].


1
Дякую, я зробив те ж саме, "помилка" dpkg, то apt-get install -f, і він працював.
Луї

2
gdebiпрацює для мене, і найпростіше я бачив досі.
ctrl-alt-delor

55

У "Сірекса" це більш-менш правильно, але його відповідь не зрозуміла. Я щойно це вирішив, тож ось що я зробив:

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модифікатор , як я спочатку включав: sudo apt-get -fy install. Однак, коментатор зазначив, що apt іноді запропонує вам видалити все ваше робоче середовище. Я робив цю роботу у вітчизняній машині і не хвилювався, але ця публікація була оновлена, щоб відображатись трохи уважніше.


Якщо у мене всі файли пакунків вже є в каталозі, чи є спосіб сказати apt, що це новий сховище, тож мені не доведеться змушувати його встановлювати що-небудь без залежностей?
Беррі Цакала

2
Вибачте, але я не знаю. Я б запропонував задати це як ще одне питання вищого рівня.
Акрикос

Божевільно дивно, що цього потрібно. Для Raspian для цього знадобиться судо (як для dpkg, так і для apt-get): sudo dpkg -i mypackages.debтощо.
Brent Faust

@Rubistro кореневий доступ до нього потрібен у всіх системах. Я думаю, що у відповідях передбачається, що команди виконуються коренем (наприклад, з інтерактивної кореневої оболонки або сценарію, який виконується як root).
Амос Шапіра

2
Для власного блага не додавайте -yваріант. Для apt досить часто пропонувати, наприклад, видалити все середовище робочого столу, якщо ви спробуєте це з неправильним пакетом у неправильний час (принаймні, на Debian).
осейскар

45

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

sudo apt-get install gdebi-core

Встановіть .deb пакети разом з gdebi,

sudo gdebi /path/to/filename.deb

Він також фіксує залежності.


4
Зауважте, що гдебі бере лише один аргумент і мовчки скидає решту на підлогу. Це означає, що якщо ви встановлюєте кілька деб одночасно (можливо, тому, що вони залежать один від одного), вам потрібно буде ретельно обробляти gdebiкоманди, які дозволяють їм встановлювати. imo ця половина перемагає мету гдебі, але ви все ще можете вважати її корисною для одного файлу
Anthony Sottile

@Anthony тодіfind -name *.deb -exec gdebi {} \;
jjmontes

3
@jjmontes, які працюватимуть лише в тому випадку, якщо взаємозалежності розташовані в алфавітному порядку, який я б став робити дуже рідко
Ентоні Соттіл,

Я стежив за цим freesoftwaremagazine.com/articles/… (помилка місцевого репо повинна була бути в / var / www / html / debs) і синаптично намагалася завантажувати з віддаленого навіть без Інтернету, тому gdebi чудово співпрацювала з місцевим репо ! також .deb файли повинні були бутиchmod +r *.deb
Водолій Сила

34

Так, команда, яку ви запропонували, є правильною.

sudo apt-get install ./package.deb

або

sudo apt install ./package.deb

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

Докладніше дивіться на https://askubuntu.com/a/769542/250300 та https://askubuntu.com/a/795048/250300 .


8
Це мала бути прийнятою відповіддю.
Петро

Яка версія apt-get додала цю можливість?
Курт Фіцнер

@KurtFitzner Додано в APT 1.1 за повідомленням про реліз (знайдено через askubuntu.com/a/795048/250300 ).
Мелебій
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.