Как я могу запустить Debian, но установить некоторые пакеты из тестирования?

Предположим, что вы используете сервер, и вы не хотите обновлять его до Testing (Squeeze) от Stable (Lenny), чтобы просто установить требуемый пакет или два.

Каков наилучший способ установки только определенных пакетов при тестировании?

175 голосов | спросил Gareth 9 J0000006Europe/Moscow 2009, 11:53:20

9 ответов


45

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
ответил Gareth 9 J0000006Europe/Moscow 2009, 12:04:43
162

Многие люди, похоже, боятся сочетать стабильность с тестированием, но, честно говоря, тестирование довольно стабильно само по себе, и при правильных настройках и проверке решений вы можете избежать «дрейфа стабильности», который ставит ваши основные пакеты на нестабильный путь.

«Тестирование довольно стабильно?» , спросите вы. Да. Чтобы пакет мог перейти от нестабильного к тестированию, он должен иметь нулевые открытые ошибки в течение 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 или ядро ​​или какую-то другую огромную систему ядра), вы можете либо отклонить эти пути обновления, либо просто вернуться из первоначального обновления в целом. Помните, что это только будет обновлять материал до тестирования /нестабильности, если вы разрешите его.

ответил Brendan Byrd 23 AMpMon, 23 Apr 2012 06:38:12 +040038Monday 2012, 06:38:12
86

В /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 или аналогичном репозитории.

ответил pQd 9 J0000006Europe/Moscow 2009, 11:57:22
12

Документация debian обширна в предмете, и я настоятельно рекомендую копаться, поскольку это будет истинно раскрывать красоту системы debian.

Посмотрите Как сохранить смешанную систему , она объяснит все, что вам нужно знать.

ответил tomdeb 9 J0000006Europe/Moscow 2009, 12:24:08
10

Для чего это стоит, общий совет, который я всегда видел, - «Не смешивайте конюшню ни с чем». Большинство обучающих программ для смешанных систем предназначены для смешивания тестов и нестабильности.

Похоже, что рассуждение состоит в том, что если вы будете сочетать стабильность с тестированием, для очень простых пакетов (например, libc6) потребуются обновления (для установки программного обеспечения от тестирования), и как только эти базовые пакеты перейдут на тестирование, вся система может дрейфовать сюда.

Вот две альтернативы:

  1. Используйте Backports .
  2. Установите исходную строку из тестирования и попробуйте создайте более позднюю версию из источника .
ответил Telemachus 9 J0000006Europe/Moscow 2009, 17:09:26
7

Другим способом, который мог бы предотвратить установку слишком многих зависимостей из 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.

ответил gerlos 13 MarpmThu, 13 Mar 2014 21:02:47 +04002014-03-13T21:02:47+04:0009 2014, 21:02:47
4

Я делаю это в течение длительного периода времени, чтобы быть уверенным в том, что он достаточно безопасен и может быть удобен. По умолчанию установка стабильной версии будет установлена ​​по умолчанию, однако 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";
ответил Daniel Sokolowski 5 FebruaryEurope/MoscowbTue, 05 Feb 2013 02:59:15 +0400000000amTue, 05 Feb 2013 02:59:15 +040013 2013, 02:59:15
2

Если ваш выбор пакетов более активен или установка будет повторяться на нескольких машинах, вы можете подумать о создании частного репозитория, который отображает подмножество официальных репозиториев. Для этого требуется небольшая работа по настройке репозитория, но вознаграждение легко поддерживать с минимальной конфигурацией на каждом клиенте и повторяемыми результатами при выполнении десятков установок. Я нахожу это полезным даже тогда, когда устанавливаются только один или два пакета, и используйте этот метод для автоматизации и поддержки облачных установок. Один сервер на дешевом 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
ответил Daniel Kauffman 6 J000000Monday15 2015, 21:53:48
0

Другой вариант - загрузить исходный пакет из тестирования. APT может автоматически создать исходный пакет после его загрузки. Таким образом, ваши стабильные пакеты не будут затронуты тестированием обновлений. Единственный компромисс заключается в том, что потребуется больше времени, чем просто загрузка и установка двоичного пакета.

Чтобы настроить APT для загрузки исходных пакетов из тестирования, просто добавьте:

deb-src http: //<ваше зеркальное отражение здесь> тестирование основного

Если вы просто хотите следовать текущему тестированию, а не будущим экзаменам, замените «тестирование» на текущее кодовое имя (на момент написания «биттер»)

ответил temy 16 FebruaryEurope/MoscowbFri, 16 Feb 2018 06:15:42 +0300000000amFri, 16 Feb 2018 06:15:42 +030018 2018, 06:15:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132