У меня есть пакет deb для установки.
Должен ли я установить с помощью dpkg -i my.deb
или apt?
Хорошо ли оба справятся с проблемой зависимости программного обеспечения?
Если с помощью apt, как я могу установить из deb с помощью apt?
Когда вы используете apt
для установки пакета, внутри него используется dpkg
. Когда вы устанавливаете пакет с помощью apt, он сначала создает список всех зависимостей и загружает его из репозитория.
После завершения загрузки он вызывает dpkg
для установки всех этих файлов с учетом всех зависимостей.
Итак, если у вас есть файл .deb
, вы можете установить его следующим образом:
-
Использование:
sudo dpkg -i/path/to/deb/filesudo apt-get install -f
-
Использование:
sudo apt install ./name.deb
Или
sudo apt install/path/to/package/name.deb
со старым apt-get сначала необходимо переместить файл deb в каталог
/var/cache/apt/archives/
. Для обоих после выполнения этой команды он автоматически загрузит свои зависимости. -
Сначала установите
gdebi
, а затем откройте файл. deb с его помощью ( Щелкните правой кнопкой мыши -> Открыть с помощью ). Он установит ваш пакет .deb со всеми его зависимостями.Примечание : APT поддерживает индекс пакета, который представляет собой базу данных доступных пакетов, доступных в репо, определенном в
/etc/apt/sources.list
и в каталоге/etc/apt/sources.list.d
. Все эти методы не смогут удовлетворить программную зависимость, если зависимости, требуемые deb, отсутствуют в индексе пакета.
Зачем использовать sudo apt-get install -f
после sudo dpkg -i/path/to/deb/file
(как указано в методе 1)?
Из man apt-get
:
-f, --fix-broken Fix; попытаться исправить систему с нарушенными зависимостями.
Когда dpkg
устанавливает пакет, а зависимость пакета не удовлетворяется, он покидает пакет в “ненастроенном” состоянии, и этот пакет считается сломанным.
Команда sudo apt-get install -f
пытается исправить этот сломанный пакет, установив отсутствующий зависимость.
Установите ваш foo.deb
файл с dpkg -i foo.deb
. Если есть какие-то ошибки с неразрешенными зависимостями, запустите затем apt-get install -f
.

-
Я получил
Невозможно найти пакет
, пытаясь таким образом, и был озадачен . Я использовал, как и в Windows, только имя пакета после перехода в папку архива. Должно быть./
для Unix, если в текущей папке или полный путь. То есть, еслиdeb
отсутствует в папке, представленной вPATH
. – Алексей Мартьянов, 28 мая 2018, 16:18 -
Для сценариев используйте
apt update && dpkg -i foo.deb || apt install -f -y
, чтобы убедиться, чтоfoo.deb
не удален с помощьюapt install -y
. – JP 23 октября 2019 г., 13:38
Установите файл foo.deb
с помощью dpkg -i foo.deb
. Если есть ошибки с неразрешенными зависимостями, запустите apt-get установить -f
потом.
Вот лучший способ установить файл .deb
в Ubuntu из командной строки:
sudo gdebi skype.deb
Если у вас еще не установлен gdebi
, установите его с помощью sudo apt install gdebi-core
.
gdebi
будет искать все зависимости файла .deb
и устанавливать их перед попыткой установки .deb
файл. Я считаю это намного предпочтительнее, чем sudo dpkg -i skype.deb && sudo apt install -f
. Последний слишком старается удалить зависимости в определенных ситуациях. Например, когда я пытался установить Skype, он пытался удалить 96 (!) Пакетов, включая такие пакеты, как compiz
и unity
! gdebi
дал более четкое сообщение об ошибке:
$ sudo gdebi skype.deb Не удается установить 'libqtgui: i386'
(Кстати, вот решение этой конкретной проблемы.)
-
отлично работал Спасибо! кстати, может быть, попытка удаления была связана с переходными/временными пакетами? или вы думаете, что это действительно сломает систему? – Сила Водолея 02 июля ’17 в 17:40
-
1Чувак, у меня возникла проблема с вашим решением. Я пытался установить Rstudio. Он автоматически нашел мне старую версию R. При использовании решения @g_p мне удалось установить только Rstudio. – Dr_Hope 19 янв. ’19 в 0:34
Вот лучший способ установить файл .deb
в Ubuntu из командной строки:
sudo gdebi skype.deb
Если у вас еще не установлен gdebi
, установите его с помощью sudo apt install gdebi-core
.
gdebi
будет искать все зависимости .deb
и установит их перед попыткой установки файла .deb
. Я считаю это намного предпочтительнее, чем sudo dpkg -i skype.deb && sudo apt install -f
. Последний слишком старается удалить зависимости в определенных ситуациях. Например, когда я пытался установить Skype, он пытался удалить 96 (!) Пакетов, включая такие пакеты, как compiz
и unity
! gdebi
дал более четкое сообщение об ошибке:
$ sudo gdebi skype.deb Не удается установить 'libqtgui: i386'
(Кстати, вот решение этой конкретной проблемы.)
Вы можете установить локальный пакет .deb с помощью:
sudo apt install ./foo.deb
Обязательно укажите локальный относительный или абсолютный путь ( ./
, если в текущем каталоге), иначе он будет искать foo. deb
в удаленных репозиториях и завершится ошибкой.
-
6Это должно быть отмечено как правильный ответ. – Раэль Гугельмин Кунья 17 нояб., 18:23
-
@RaelGugelminCunha не на 100% правильно. sudo apt install libstdc ++ 6_8-20180414-1ubuntu2_amd64.deb apt: ошибка при загрузке разделяемых библиотек:/usr/lib/x86_64-linux-gnu/libstdc++.so.6: недопустимый заголовок ELF – mvladk 31 января ’19 в 8: 17
-
6@mvladk Обратите внимание на синтаксис: вам не хватает
./
перед файломdeb
. – Раэль Гугельмин Кунья, 31 янв., В 10:56 -
2Абсолютно лучший/самый простой ответ. – gerardw 14 июл. ’19 в 16:08
Вы можете установить локальный пакет .deb с помощью:
sudo apt install. /foo. deb
Обязательно укажите локальный относительный или абсолютный путь ( ./
, если в текущем каталоге), иначе он будет искать foo.deb
в удаленных репозиториях и завершится ошибкой.
Проверьте зависимости с помощью dpkg -I my.deb
и apt-get install
перед dpkg -i my.deb
.
Может быть, вы можете скопировать Не работает, my.deb
в / var/cache/apt/archives
и установить его напрямую с помощью apt-get
, но я никогда не пробовал. apt-get
и dpkg
ищут пакеты, перечисленные в архивах.
-
Спасибо. в своем первом предложении вы имеете в виду
apt-get install my.deb
подapt-get install
? Это для установки из файла deb? Зачем нам после этого нуженdpkg -i my.deb
? – Тим, 3 октября 2014 г., 16:04 -
Я всегда устанавливал локальные
.deb
с помощьюdpkg -i
, насколько я понимаю,apt
не имеет возможности установить их, кроме каталога в/var/cache/...
, где они загружены (я могу ошибаться) – Алекс 03 окт., 16:08 -
Кажется, что
apt-get install ./my.deb
что-то сделает, потому что он выводит много вещей. Что оно делает? – Тим, 3 октября 2014 г., 16:11 -
Это слишком много 🙂 не работает, см. @Igor_Dvoretskyi, ответ просто идеален, я забыл про
-f
– Alex 3 окт. /div>добавить комментарий |
Проверьте зависимости с помощью dpkg -I my.deb
и apt-get установите
зависимости перед dpkg -i my.deb
.
Может быть, вы можете скопировать Не работает, my .deb
в /var/cache/apt/archives
и установить его напрямую с помощью apt-get
, но я никогда не пробовал. apt-get
и dpkg
ищут пакеты, перечисленные в архивах.
Самый простой ответ – использовать dpkg, запустив dpkg -i packagename.deb
. Затем вы можете удалить его, запустив dpkg -r packagename.deb
.
apt-get
– это установщик более высокого уровня, основанный на dpkg, и поэтому вы можете apt-get install packagename.deb
.
Было бы полезно добавить его в каталог архивов apt-get (/var/ cache/apt/archives
), чтобы вы могли ссылаться на него как на пакет с зависимостями, а не как на отдельный архив .deb.
Кроме того, добавив его в свой каталог архивов apt-get, у вас есть возможность использовать зависимости с apt-get install packagename
. Это позволит вам установить его с любыми добавленными вручную зависимостями вместо автономной системы на основе архивов dpkg.

-
Примечание: если вы хотите использовать
apt-get install
с локальным файлом пакета, вы должны установить его в/var/cache/apt/archives
, иначеapt-get
может решить загрузить его в любом случае. – Энтони Уильямс, 15 янв. ’20 в 11:58
Самый простой ответ – использовать dpkg, запустив dpkg -i packagename.deb
. Затем вы можете удалить его, запустив dpkg -r packagename.deb
.
apt-get
– это установщик более высокого уровня, основанный на dpkg, и поэтому вы можете apt-get install packagename.deb
.
Было бы полезно добавить его в каталог архивов apt-get (/var/ cache/apt/archives
), чтобы вы могли ссылаться на него как на пакет с зависимостями, а не как на отдельный архив .deb.
Кроме того, добавив его в свой каталог архивов apt-get, у вас есть возможность использовать зависимости с apt-get install packagename
. Это позволит вам установить его с любыми добавленными вручную зависимостями вместо автономной системы на основе архивов dpkg.
Современный apt-get можно использовать для установки пакета просто с помощью apt-get install/path/to/package/name.deb
.
(должно быть выполнено как редактирование верхнего ответа, но он был отклонен – см. https://unix.stackexchange.com/posts/159114/edit)
-
Это не работало с
apt 1.0.9.8. 4 для amd64, скомпилировано 11 декабря 2016 г., 09:48:19
– Бруно Броноски, 28 сентября 2017 г., 22:10
Современный apt-get можно использовать для установки пакета просто с помощью apt-get install/path/to/package /name.deb
.
(должно быть выполнено как редактирование верхнего ответа, но он был отклонен – см. https://unix.stackexchange.com/posts/159114/edit)
Это очень просто, если я хотите установить Chrome.
Установите файл Chrome как:
dpkg -i googlechrome.deb.
Иногда есть шанс получить некоторые ошибки зависимости, например следующие:
dpkg: проблемы с зависимостями не позволяют настроить google-chrome-stable: google-chrome-stable зависит от libappindicator1; однако: пакет libappindicator1 не установлен.
Итак, чтобы решить указанные выше проблемы, вам необходимо добавить зависимости; введите следующую команду:
apt-get install -f
После выполнения указанной выше команды зависимости будут добавлены к вашему машина и ваш файл пакета Debian ( .deb
) будет установлен.
Если я хочу установить Chrome, это очень просто.
Установите файл Chrome как:
dpkg -i googlechrome.deb.
Иногда есть шанс получить некоторые ошибки зависимостей, например следующие:
dpkg: проблемы с зависимостями мешают настройке google-chrome-stable: google-chrome-stable зависит от libappindicator1; однако: пакет libappindicator1 не установлен.
Итак, чтобы решить указанные выше проблемы, вам необходимо добавить зависимости; введите следующую команду:
apt-get install -f
После выполнения указанной выше команды зависимости будут добавлены к вашему компьютер и ваш пакет Debian ( .deb
) будет установлен.