Как установить файл deb, с помощью dpkg -i или apt?
У меня есть пакет deb для установки.
Можно ли установить с помощью dpkg -i my.deb
или с помощью apt?
Хорошо ли справятся с проблемой зависимости программного обеспечения?
Если apt, как я могу установить из deb с помощью apt?
8 ответов
Когда вы используете apt
для установки пакета, он использует dpkg
. Когда вы устанавливаете пакет с помощью apt, он сначала создает список всех зависимостей и загружает его из репозитория.
После завершения загрузки он вызывает dpkg
для установки всех этих файлов, удовлетворяющих всем зависимостям.
Итак, если у вас есть файл .deb
:
-
Вы можете установить его с помощью
sudo dpkg -i /path/to/deb/file
, за которым следуетsudo apt-get install -f
. -
Вы можете установить его с помощью
sudo apt install ./name.deb
(или/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
(упоминается в первом методе) ,
Из man apt-get
-f, --fix-broken
Fix; attempt to correct a system with broken dependencies in place.
Если dpkg
установить пакет и зависимость пакета не выполняется, он оставляет пакет в состоянии unconfigured
, и этот пакет считается сломанным.
sudo apt-get install -f
пытается исправить этот сломанный пакет, установив отсутствующую зависимость.
Установите файл foo.deb
с помощью dpkg -i foo.deb
. Если есть некоторые ошибки с неразрешенными зависимостями, запустите apt-get install -f
.
Вот лучший способ установить файл .deb
на Ubuntu в командной строке:
sudo gdebi skype.deb
Если у вас еще нет установленного gdebi
, установите его с помощью sudo apt install gdebi-core
.
Почему gdebi?
gdebi
будет искать все зависимости файла .deb
и будет устанавливать их перед попыткой установить файл .deb
. Я нахожу это намного предпочтительнее, чем sudo dpkg -i skype.deb && sudo apt install -f
. Последнее слишком стремительно устраняет зависимости в определенных ситуациях. Например, когда я пытался установить Skype, он попытался удалить 96 (!) Пакетов, включая пакеты, такие как compiz
и unity
! gdebi
дал гораздо более ясное сообщение об ошибке:
$ sudo gdebi skype.deb
Cannot install 'libqtgui:i386'
Проверьте зависимости с помощью dpkg -I my.deb
и apt-get install
зависимостей перед dpkg -i my.deb
.
Возможно, вы можете скопировать
Не работает, my.deb
в /var/cache/apt/archives
и установить его непосредственно с помощью apt-get
но я никогда не пробовал. apt-get
и dpkg
ищут пакеты, перечисленные в архивах.
Вы можете установить локальный пакет .deb:
sudo apt install ./foo.deb
Обязательно укажите локальный относительный или абсолютный путь (./
, если в текущем каталоге), в противном случае он будет искать foo.deb
в удаленных репозиториях и не работает .
Самый простой ответ - использовать dpkg, запустив dpkg -i packagename.deb
. Затем вы можете удалить его, запустив dpkg -r packagename.deb
.
apt-get
- это установщик более высокого уровня, основанный на dpkg, и как таковой вы можете apt-get install packagename.deb
.
Было бы полезно добавить его в каталог apt-get archives (/var/cache/apt/archives
), чтобы вы могли ссылаться на него как на пакет с зависимостями, а не на отдельный архив .deb.
Кроме того, добавив его в свой каталог apt-get archives, вы сможете использовать зависимости с помощью apt-get install packagename
. Это позволит вам устанавливать его с помощью любых добавленных вручную зависимостей вместо автономной системы архивирования dpkg.
Современный apt-get может быть использован для установки пакета просто с помощью apt-get install /path/to/package/name.deb
.
(должно быть сделано как изменение верхнего ответа, но оно было отклонено - см. https://unix.stackexchange.com /сообщений /159114 /редактировать )
Это очень просто, если я хочу установить Chrome.
Установите файл Chrome как:
dpkg -i googlechrome.deb.
Иногда возникает вероятность получить некоторые ошибки зависимостей, например:
dpkg: dependency problems prevent configuration of google-chrome-stable:
google-chrome-stable depends on libappindicator1; however:
Package libappindicator1 is not installed.
Итак, чтобы решить вышеуказанные проблемы, вам нужно добавить зависимости; введите следующую команду:
apt-get install -f
После предоставления указанной команды на ваш компьютер будут добавлены зависимости, а ваш пакет Debian (.deb
) будет установлен.