Как включить несвободные пакеты в Debian?

47

Как я могу включить несвободные пакеты в Debian? Я хочу установить Java JDK от Sun, но он мне не доступен.

Quiffner
источник

Ответы:

50

Откройте /etc/apt/sources.list, и вы должны увидеть строки, подобные следующим (URL, вероятно, будут отличаться):

deb http://http.us.debian.org/debian stable main contrib

Просто добавьте non-freeк соответствующим URL, которые вы хотите использовать, то есть:

 deb http://http.us.debian.org/debian stable main contrib non-free

Запуск apt-get updateобновит ваше локальное хранилище с указанием пакета.

Андрей М.
источник
20

Вы также можете немного ограничить это, если вы хотите, чтобы некоторые очень специфические пакеты не были бесплатными (например, прошивки для вашего оборудования).

Для этого сохраните, /etc/apt/sources.listкак описано @Andrew M. Затем используйте Apt Pinning, чтобы отключить по умолчанию все несвободные пакеты для вашего текущего выпуска:

Создайте файл с именем, /etc/apt/preferences.d/non-free_policyсодержащим следующие директивы:

Explanation: Disable packages from non-free tree by default
Package: *
Pin: release o=Debian,a=stable,l=Debian,c=non-free
Pin-Priority: -1

Теперь создайте еще один файл для определенного пакета, который вы хотите получить не бесплатно.
Предположим, вы хотите добавить драйверы Intel для беспроводных карт, например (пакет firmware-iwlwifi ).
Создайте имя файла /etc/apt/preferences.d/firmware-iwlwifi_nonfreeс этими строками:

Explanation: Enable package firmware-iwlwifi from non-free tree
Package: firmware-iwlwifi
Pin: release o=Debian,a=stable,l=Debian,c=non-free
Pin-Priority: 600

Эта конфигурация позволяет избежать раздувания вашего пакета этими надоедливыми несвободными пакетами ;)

jopasserat
источник
3
Более подробная информация о точном
jopasserat
1
Что означает o, a, lи cсреднее значение в Pin:директиве, и как будут добавлены несколько пакетов?
MattBianco
Происхождение, архив, метка и компонент. проверьте man-страницу для более подробной информации manpages.debian.org/jessie/apt/apt_preferences.5.en.html
jopasserat
7

Метод командной строки для ответа @Andrew M., если вы хотите несвободный пакет для всех источников:

sudo apt-add-repository non-free
sudo apt-get update

Ответ вдохновлен: https://askubuntu.com/a/553847/67211

Лукас
источник
Это дает мне ошибкуapt-add-repository: not found
Крис Стрычински
@ChrisStryczynski, установите дополнительный пакет, software-properties-commonчтобы получить этот инструмент.
Лукас