Как установить файл deb с помощью dpkg -i или apt?

У меня есть пакет deb для установки.

Должен ли я установить с помощью dpkg -i my.deb или apt?

Хорошо ли оба справятся с проблемой зависимости программного обеспечения?

Если с помощью apt, как я могу установить из deb с помощью apt?


Когда вы используете apt для установки пакета, внутри него используется dpkg . Когда вы устанавливаете пакет с помощью apt, он сначала создает список всех зависимостей и загружает его из репозитория.

После завершения загрузки он вызывает dpkg для установки всех этих файлов с учетом всех зависимостей.

Итак, если у вас есть файл .deb , вы можете установить его следующим образом:

  1. Использование:

      sudo dpkg -i/path/to/deb/filesudo apt-get install -f  
  2. Использование:

      sudo apt install ./name.deb

    Или

      sudo apt install/path/to/package/name.deb

    со старым apt-get сначала необходимо переместить файл deb в каталог /var/cache/apt/archives/. Для обоих после выполнения этой команды он автоматически загрузит свои зависимости.

  3. Сначала установите 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 пытается исправить этот сломанный пакет, установив отсутствующий зависимость.


105

Установите ваш foo.deb файл с dpkg -i foo.deb . Если есть какие-то ошибки с неразрешенными зависимостями, запустите затем apt-get install -f .

поделиться | улучшить этот ответ | |
ответил 03 октября 2014 в 16:15
  • Я получил Невозможно найти пакет , пытаясь таким образом, и был озадачен . Я использовал, как и в 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 потом.


76

Вот лучший способ установить файл .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'  

(Кстати, вот решение этой конкретной проблемы.)

поделиться | улучшить этот ответ | |
отредактировано 13 апреля ’17 в 12:22
Сообщество ♦
1
ответили 27 дек. ’16 в 9:15
  • отлично работал Спасибо! кстати, может быть, попытка удаления была связана с переходными/временными пакетами? или вы думаете, что это действительно сломает систему? – Сила Водолея 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'  

(Кстати, вот решение этой конкретной проблемы.)


73

Вы можете установить локальный пакет .deb с помощью:

  sudo apt install ./foo.deb 

Обязательно укажите локальный относительный или абсолютный путь ( ./, если в текущем каталоге), иначе он будет искать foo. deb в удаленных репозиториях и завершится ошибкой.

share | улучшить этот ответ | |
ответ дан 28 июня ’17 в 1:26
  • 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 в удаленных репозиториях и завершится ошибкой.


15

Проверьте зависимости с помощью dpkg -I my.deb и apt-get install перед dpkg -i my.deb .

Может быть, вы можете скопировать my.deb в / var/cache/apt/archives и установить его напрямую с помощью apt-get , но я никогда не пробовал. Не работает, apt-get и dpkg ищут пакеты, перечисленные в архивах.

поделиться | улучшить этот ответ | |
отредактировано 3 октября 2014 г. в 16:22
ответил 03 октября 2014 в 15:59
  • Спасибо. в своем первом предложении вы имеете в виду 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 ищут пакеты, перечисленные в архивах.


6

Самый простой ответ – использовать 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.

share | улучшить этот ответ | |
ответил 02 марта 2015, в 2:53
  • Примечание: если вы хотите использовать 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.


6

Современный apt-get можно использовать для установки пакета просто с помощью apt-get install/path/to/package/name.deb .

(должно быть выполнено как редактирование верхнего ответа, но он был отклонен – ​​см. https://unix.stackexchange.com/posts/159114/edit)

share | улучшить этот ответ | |
ответил 17 июля ’17 в 9:01
  • Это не работало с 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)


-4

Это очень просто, если я хотите установить Chrome.

Установите файл Chrome как:

  dpkg -i googlechrome.deb.  

Иногда есть шанс получить некоторые ошибки зависимости, например следующие:

  dpkg: проблемы с зависимостями не позволяют настроить google-chrome-stable: google-chrome-stable  зависит от libappindicator1;  однако: пакет libappindicator1 не установлен.  

Итак, чтобы решить указанные выше проблемы, вам необходимо добавить зависимости; введите следующую команду:

  apt-get install -f  

После выполнения указанной выше команды зависимости будут добавлены к вашему машина и ваш файл пакета Debian ( .deb ) будет установлен.

поделиться | улучшить этот ответ | |
отредактировано 14 декабря ’17 в 11:10
Kevdog777
2,9141616 золотых знаков3838 серебряных знаков6161 бронзовых знаков
ответил 14 дек. ’17 в 9:22
добавить комментарий |

Если я хочу установить Chrome, это очень просто.

Установите файл Chrome как:

  dpkg -i googlechrome.deb.  

Иногда есть шанс получить некоторые ошибки зависимостей, например следующие:

  dpkg: проблемы с зависимостями мешают настройке google-chrome-stable: google-chrome-stable зависит от libappindicator1;  однако: пакет libappindicator1 не установлен.  

Итак, чтобы решить указанные выше проблемы, вам необходимо добавить зависимости; введите следующую команду:

  apt-get install -f  

После выполнения указанной выше команды зависимости будут добавлены к вашему компьютер и ваш пакет Debian ( .deb ) будет установлен.

Оцените статью
futurei.ru
Добавить комментарий