Как я могу запустить Debian, но установить некоторые пакеты из тестирования?
Предположим, что вы используете сервер, и вы не хотите обновлять его до Testing (Squeeze) от Stable (Lenny), чтобы просто установить требуемый пакет или два.
Каков наилучший способ установки только определенных пакетов при тестировании?
9 ответов
apt_preferences
Определите уровень по умолчанию, который система должна «безопасно обновить» в файле /etc /apt /preferences:
man apt_preferences
С apt_preferences вы можете многое сделать, но ради простоты ...
Мне нужно было установить один пакет (autoMysqlBackup), который был доступен только в Testing. Решение заключалось в следующем: /etc /apt /preferences:
Объяснение: Удалите или не установите Debian-originated
Объяснение: версии пакетов, отличные от версий в стабильном дистрибутиве
Пакет: *
Pin: release a = стабильный
Приоритет: 900
Пакет: *
Pin: release o = Debian
Приоритет: -10
С несколькими репозиториями, добавленными в /etc/apt/sources.list, aptitude теперь будет только обновляться до указанной вами версии, даже если перечислены более поздние версии репозиториев (в данном случае «stable»).
deb http://mirror.aarnet.edu.au/debian/lenny main
deb-src http://mirror.aarnet.edu.au/debian/lenny main
deb http://mirror.aarnet.edu.au/debian/сжать основной
deb-src http://mirror.aarnet.edu.au/debian/сжать main
Итак, чтобы установить этот пакет, все, что вам нужно сделать, это:
$ aptitude install -t test packageName
Многие люди, похоже, боятся сочетать стабильность с тестированием, но, честно говоря, тестирование довольно стабильно само по себе, и при правильных настройках и проверке решений вы можете избежать «дрейфа стабильности», который ставит ваши основные пакеты на нестабильный путь.
«Тестирование довольно стабильно?» , спросите вы. Да. Чтобы пакет мог перейти от нестабильного к тестированию, он должен иметь нулевые открытые ошибки в течение 10 последовательных дней. Скорее всего, особенно для более популярных пакетов кто-то собирается представить отчет об ошибке для нестабильной версии, если что-то не так.
Даже если вы не хотите смешивать среду, все равно приятно иметь вариант там, если вы столкнетесь с чем-то, что требует более новой версии, чем то, что находится в стабильном состоянии.
Вот что я рекомендую для настройки:
Сначала создайте следующие файлы в /etc/apt/preferences.d
:
security.pref
Пакет: *
Вывод: релиз l = Debian-Security
Приоритет: 1000
stable.pref
Пакет: *
Pin: release a = стабильный
Приоритет: 900
testing.pref
Пакет: *
Pin: release a = тестирование
Приоритет: 750
unstable.pref
Пакет: *
Pin: release a = неустойчивый
Приоритет: 50
experimental.pref
Пакет: *
Pin: release a = экспериментальный
Приоритет: 1
(Не бойтесь нестабильного /экспериментального материала здесь. Приоритеты достаточно низки, что он никогда не будет автоматически устанавливать какой-либо из этих вещей. Даже ветка тестирования будет вести себя, так как это будет только установка пакетов, которые вы хочу быть в тестировании.)
Теперь создаем соответствующий набор для /etc/apt/sources.list.d
:
security.list
deb http://security.debian.org/stable /updates main contrib non-free
deb http://security.debian.org/тестирование /обновления main contrib non-free
stable.list
deb http://mirror.steadfast.net/debian/stable main contrib non-free
deb-src http://mirror.steadfast.net/debian/stable main contrib non-free
deb http://ftp.us.debian.org/debian/stable main contrib non-free
deb-src http://ftp.us.debian.org/debian/stable main contrib non-free
test.list
: То же, что stable.list
, за исключением testing
.
unstable.list
: То же, что stable.list
, за исключением unstable
.
experimental.list
: То же, что stable.list
, за исключением experimental
.
Вы можете заменить зеркало steadfast.net тем, что хотите. Я бы рекомендовал использовать netselect-apt
для определения самого быстрого зеркала и использовать его для вашего первого выбора. ftp.us.debian.org
может использоваться как резервная копия. Также важно использовать термины stable
, testing
, unstable
и т. Д. Вместо squeeze
, wheezy
, sid
и т. д., так как stable
- движущаяся цель, и когда приходит время для обновления до последней стабильной, apt /aptitude автоматически.
Вы также можете добавить oldstable
в sources.lists.d
и preferences.d
(используйте приоритет 1), хотя это прозвище будет стремиться к истечению и исчезнуть до следующего стабильного цикла. В подобных случаях вы можете использовать http://archive.debian.org/debian/
и "hardcode" версию Debian (etch, lenny и т. Д.).
Чтобы установить тестовую версию пакета, просто используйте aptitude install lib-foobar-package /testing
или просто перейдите в графический интерфейс aptitude и выберите версию внутри деталей пакета (нажмите enter на пакет, на который вы смотрите).
Если вы получаете жалобы на конфликты пакетов, сначала посмотрите на решения. В большинстве случаев первая из них будет «не устанавливать эту версию». Научитесь использовать выбор принимающего /отклоняющего решения для каждого пакета. Например, если вы устанавливаете foobar-package /testing, а первое решение - «не устанавливать foobar-package /testing», тогда отметьте этот выбор как отклоненный, а другие решения никогда не вернутся к этому пути еще раз. В таких случаях вам, вероятно, придется установить несколько других пакетов тестирования.
Если он становится слишком волосатым (например, он пытается обновить libc или ядро или какую-то другую огромную систему ядра), вы можете либо отклонить эти пути обновления, либо просто вернуться из первоначального обновления в целом. Помните, что это только будет обновлять материал до тестирования /нестабильности, если вы разрешите его.
В /etc/apt/apt.conf.d
добавьте следующий файл
99defaultrelease
APT :: Default-Release "stable";
в /etc/apt/sources.list.d
- добавить URL-адреса для тестирования /нестабильные источники
stable.list
deb http://ftp.de.debian.org/debian/stable main contrib non-free
deb-src http://ftp.de.debian.org/debian/stable main contrib non-free
deb http://security.debian.org/stable /updates main contrib non-free
testing.list
deb http://ftp.de.debian.org/debian/test main contrib non-free
deb-src http://ftp.de.debian.org/debian/test main contrib non-free
deb http://security.debian.org/тестирование /обновления main contrib non-free
бег
apt-get update
, а затем установите то, что вам нужно с помощью
apt-get -t-тестирование
Будьте очень осторожны, если вы установите материал с большим количеством зависимостей. Предпочтительно не делайте этого при производстве.
Вы также можете попробовать свое счастье в backports или аналогичном репозитории.
Документация debian обширна в предмете, и я настоятельно рекомендую копаться, поскольку это будет истинно раскрывать красоту системы debian.
Посмотрите Как сохранить смешанную систему , она объяснит все, что вам нужно знать.
Для чего это стоит, общий совет, который я всегда видел, - «Не смешивайте конюшню ни с чем». Большинство обучающих программ для смешанных систем предназначены для смешивания тестов и нестабильности.
Похоже, что рассуждение состоит в том, что если вы будете сочетать стабильность с тестированием, для очень простых пакетов (например, libc6) потребуются обновления (для установки программного обеспечения от тестирования), и как только эти базовые пакеты перейдут на тестирование, вся система может дрейфовать сюда.
Вот две альтернативы:
- Используйте Backports .
- Установите исходную строку из тестирования и попробуйте создайте более позднюю версию из источника .
Другим способом, который мог бы предотвратить установку слишком многих зависимостей из Testing или Sid, является следующее: вы сообщаете apt-get, чтобы получить исходный код пакета Testing или Sid и создать пакет для вашей системы с помощью инструментов Debian (нет необходимости вручную рубить источники).
Цитата: https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable .3F
Как сделать резервную копию пакета sid для тестирования или стабильной?
Установите источник Debian (и инструменты разработки, особенно debhelper, devscripts и build-essential), а затем построить пакет.
Шаг за шагом:
добавить строку deb-src для sid в ваш источник.list Обновление apt-get apt-get build-dep PACKAGE_NAME apt-get -b источник PACKAGE_NAME
Итоговые deb должны быть в текущем каталоге и могут быть установлен с dpkg -i the.deb.
Я делаю это в течение длительного периода времени, чтобы быть уверенным в том, что он достаточно безопасен и может быть удобен. По умолчанию установка стабильной версии будет установлена по умолчанию, однако Aptitude также позволит вам выбрать резервную или нестабильную версию, если это необходимо:
Есть четыре вещи, которые необходимо отредактировать, необходимо установить выпуск пин-кода по умолчанию, источники нуждаются в резервных копиях и нестабильных добавленных, понижая приоритет пиннинга для backports /unstable packages, а настройки отображения атрибутов должны быть изменены на отображение пиннинга.
- Создайте '/etc /apt /apt.conf.d /10defaultrelease' и сделайте его содержимое следующим образом:
Apt :: default-Release "stable";
- Отредактируйте свой '/etc /apt /sources.list' , чтобы добавить нестабильные и резервные источники, чтобы он выглядел примерно так:
# deb cdrom: [Debian GNU /Linux 6.0.0 _Squeeze_ - Официальная многоадресная архитектура amd64 /i386 NETINST # 1 20110205-14: 45] /squeeze main deb http://ftp.us.debian.org/debian/сжать main deb-src http://ftp.us.debian.org/debian/сжать main deb http://security.debian.org/сжать /обновить главную deb-src http://security.debian.org/сжатие /обновление main # squeeze-update, ранее известный как "volatile" deb http://ftp.us.debian.org/debian/squeeze-updates main deb-src http://ftp.us.debian.org/debian/squeeze-updates main # сжимать backports # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports squeeze-backports main # неустойчивый # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/unstable main deb-src http://ftp.us.debian.org/debian/unstable main # не бесплатный ex. sun java #deb http://ftp.us.debian.org/debian/сжимается без права доступа # deb-src http://ftp.us.debian.org/debian/сжимается без права доступа
- Изменить
etc /apt /preferences
файл пиннинга - если файл не существует, создайте его.
# Приоритет прикрепления пакетов # См. Http://wiki.debian.org/AptPreferences и http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences # # В комплекте с гайкой установлен максимальный PIN-код # # По умолчанию используются следующие параметры: кроме настроек: # 990 - для версии, которая не установлена, но DO принадлежит нашей стабильной настройке `` APT :: Default-Relase. # 500 - для версий, которые не установлены и не принадлежат к целевому выпуску # 100 - для уже установленных пакетов это означает также другие версии одного пакета № 1 - для экспериментальных пакетов; пакеты с «NotAutomatic: yes» # # Наши пиннинг # 400 - резервные копии, которые можно безопасно установить без необходимости обновления других пакетов # 50 - неустойчивые пакеты, установленные на экране сведений, могут привести к конфликтам Пакет: * Pin: release n = сжатие-backports Приоритет: 400 Пакет: * Pin: release a = неустойчивый
- Создайте '/etc /apt /apt.conf.d /100guiconf' и настройте Aptitude, чтобы он отображал информацию о прикреплении.
Aptitude :: UI :: Package-Display-Format "% c% a% M% p% Z% v% V% i";
Если ваш выбор пакетов более активен или установка будет повторяться на нескольких машинах, вы можете подумать о создании частного репозитория, который отображает подмножество официальных репозиториев. Для этого требуется небольшая работа по настройке репозитория, но вознаграждение легко поддерживать с минимальной конфигурацией на каждом клиенте и повторяемыми результатами при выполнении десятков установок. Я нахожу это полезным даже тогда, когда устанавливаются только один или два пакета, и используйте этот метод для автоматизации и поддержки облачных установок. Один сервер на дешевом VPS может обрабатывать десятки частных репозиториев.
Чтобы настроить сервер приватных репозиториев:
# Установите точно.
apt-get install aptly
# Создайте локальное зеркало (выберите зеркало источника рядом с вами).
aptly mirror create -filter = "mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
# Настройка фильтров для локального зеркала.
aptly mirror edit -filter = "Название (% roundcube *)" stretch-roundcube
# Обновить локальное зеркало.
аппетитно зеркальное обновление stretch-roundcube
# Отбрасывать ранее опубликованные репозитории и зеркала при запуске этих команд в скрипте.
умело опубликовать
# Снимите моментальный снимок, если вы выполняете эти команды в скрипте.
удачный снимок-стретч-круглый куб
# Создать новый снимок.
метка моментального снимка создает растянутый круглый куб из зеркального растяжения-круглого куба
# Опубликовать моментальный снимок.
aptly publish snapshot -architectures = i386, amd64 -distribution = stretch -component = roundcube -label = "Your Name" -origin = "Ваше имя" stretch-roundcube
Затем настройте свой веб-сервер, чтобы обслуживать файлы статического репозитория. Возможно, защитите репозиторий с помощью сертификата безопасности и базовой проверки подлинности.
Чтобы автоматически поддерживать свой приватный репозиторий и извлекать обновления из восходящего потока, поместите вышеприведенное в сценарий и запустите с помощью задания cron.
Чтобы настроить клиентскую машину на клиентской машине:
# Настроить приватный репозиторий без проверки подлинности.
echo 'deb http://private.repository.example.com/stretch roundcube'> /etc/apt/sources.list.d/private.repository.example.com.list
# Настроить приватный репозиторий с помощью аутентификации.
echo 'deb https: //hostname: [email protected]/stretch roundcube'> /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https
# Обновить.
Обновление apt-get
# Установить пакет.
apt-get установить круглый куб
Чтобы поддерживать клиентскую машину и извлекать все ваши частные репозитарии на клиентской машине:
# Обновить.
Обновление apt-get
# Обновить.
apt-get upgrade
Другой вариант - загрузить исходный пакет из тестирования. APT может автоматически создать исходный пакет после его загрузки. Таким образом, ваши стабильные пакеты не будут затронуты тестированием обновлений. Единственный компромисс заключается в том, что потребуется больше времени, чем просто загрузка и установка двоичного пакета.
Чтобы настроить APT для загрузки исходных пакетов из тестирования, просто добавьте:
deb-src http: //<ваше зеркальное отражение здесь> тестирование основного
Если вы просто хотите следовать текущему тестированию, а не будущим экзаменам, замените «тестирование» на текущее кодовое имя (на момент написания «биттер»)