Скажіть, що ви працюєте з сервером, і ви не хочете перейти на Тестування (видавлювання) від Stable (Lenny), щоб просто встановити необхідний пакет або два.
Який найкращий спосіб встановити лише певні пакети з Тестування?
Скажіть, що ви працюєте з сервером, і ви не хочете перейти на Тестування (видавлювання) від Stable (Lenny), щоб просто встановити необхідний пакет або два.
Який найкращий спосіб встановити лише певні пакети з Тестування?
Відповіді:
Багато людей, схоже, бояться змішати стабільність з тестуванням, але, чесно кажучи, тестування досить стабільне саме по собі, і при належних налаштуваннях та перевірці рішень ви можете уникнути "дрейфу стабільності", який ставить ваші основні пакети на нестабільний шлях.
"Тестування є досить стабільним ??" , Ви запитаєте. Так. Для того, щоб пакет міг перейти з нестабільного до тестування, він повинен мати нульові відкриті помилки протягом 10 днів поспіль. Ймовірно, що, особливо для більш популярних пакетів, хтось збирається подати звіт про помилку для нестабільної версії, якщо щось не так.
Навіть якщо ви не хочете змішувати середовища, все одно приємно мати можливість там, якщо ви наткнетесь на щось, що вимагає більш нової версії, ніж у стабільній.
Ось що я рекомендую для налаштування:
Спочатку створіть такі файли в /etc/apt/preferences.d
:
stable.pref
:
# 500 <= P < 990: causes a version to be installed unless there is a
# version available belonging to the target release or the installed
# version is more recent
Package: *
Pin: release a=stable
Pin-Priority: 900
testing.pref
:
# 100 <= P < 500: causes a version to be installed unless there is a
# version available belonging to some other distribution or the installed
# version is more recent
Package: *
Pin: release a=testing
Pin-Priority: 400
unstable.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=unstable
Pin-Priority: 50
experimental.pref
:
# 0 < P < 100: causes a version to be installed only if there is no
# installed version of the package
Package: *
Pin: release a=experimental
Pin-Priority: 1
(Не бійтеся тут нестабільних / експериментальних речей. Пріоритети є досить низькими, що ніколи не збирається автоматично встановлювати будь-який з цих речей. Навіть тестова гілка буде вести себе, оскільки збирається встановити лише ті пакунки, якими ви хочете бути. при тестуванні.)
Тепер, створивши відповідний набір для /etc/apt/sources.list.d
:
stable.list
: Копія з оригіналу /etc/apt/sources.list
. Перейменуйте старий файл на щось подібне sources.list.orig
.
testing.list
: Те саме, що stable.list
, крім с testing
.
unstable.list
: Те саме, що stable.list
, за винятком unstable
, і видалити списки безпеки.
experimental.list
: Те саме, що unstable.list
, крім с experimental
.
Ви також можете додати oldstable
в sources.lists.d
і preferences.d
(використовувати пріоритет 1), хоча цей показник, як правило, закінчується і зникає до наступного стабільного циклу. У подібних випадках ви можете використовувати http://archive.debian.org/debian/
і "жорсткий код" версії Debian (etch, lenny тощо).
Щоб встановити тестову версію пакету, просто скористайтеся aptitude install lib-foobar-package/testing
або просто перейдіть у графічний інтерфейс придатності та виберіть версію всередині деталей пакета (натисніть клавішу Enter, яку ви шукаєте).
Якщо ви отримуєте скарги на конфлікт пакетів, спочатку подивіться на рішення. У більшості випадків першим буде "не встановлювати цю версію". Навчіться використовувати варіанти прийому / відхилення роздільної здатності для пакета. Наприклад, якщо ви встановлюєте foobar-пакет / тестування, і першим рішенням є "не встановлювати foobar-пакет / тестування", то позначте цей вибір як відхилений, а інші рішення ніколи більше не перейдуть до цього шляху. У таких випадках вам, мабуть, доведеться встановити кілька інших пакетів тестування.
Якщо він стає занадто волохатим (як, наприклад, намагається оновити libc або ядро чи якусь іншу величезну основну систему), то ви можете або відхилити ці шляхи оновлення, або взагалі повернутися з початкового оновлення. Пам’ятайте, що оновити матеріал буде лише до тестування / нестабільності, якщо ви дозволите це.
EDIT: виправлено декілька пріоритетних штифтів та оновлено список.
apt-get update
після створення файлів конфігурації?
sudo apt-get update
я отримав помилку оновлення. Потім перезапустили, що дало мені Xsession error
, знову перезапустили, і тепер у мене немає Gui. /dev/sda1/
тепер повний. Чудово.
В /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/ testing main contrib non-free
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
deb http://security.debian.org/ testing/updates main contrib non-free
бігати
apt-get update
а потім встановіть те, що вам потрібно
apt-get -t testing install something
Будьте дуже обережні, якщо встановите речі, які мають велику кількість залежностей. Переважно не робити цього на виробництві.
Ви також можете спробувати свою удачу в репортерах або схожих сховищах.
apt_preferences
Визначте рівень за замовчуванням, до якого система повинна «безпечно оновити» у файлі / etc / apt / preferences:
man apt_preferences
З apt_preferences можна багато чого зробити, але для простоти ...
Мені потрібно було встановити єдиний пакет (autoMysqlBackup), який був доступний лише в Тестуванні. Рішенням було додати наступне до / etc / apt / переваг:
Explanation: Uninstall or do not install any Debian-originated
Explanation: package versions other than those in the stable distro
Package: *
Pin: release a=stable
Pin-Priority: 900
Package: *
Pin: release o=Debian
Pin-Priority: -10
З додаванням кількох сховищ до /etc/apt/sources.list придатність тепер буде оновлена лише до вказаного випуску, навіть якщо репозиції пізнішого випуску перераховані (у цьому випадку "стабільні").
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/ squeeze main
deb-src http://mirror.aarnet.edu.au/debian/ squeeze main
Отже, щоб встановити цей пакет, все, що вам потрібно зробити, це:
$ aptitude install -t testing packageName
Щодо того, що варто, загальна порада, яку я завжди бачив, - це "Не змішуй стабільно ні з чим". Більшість навчальних посібників для змішаних систем призначені для тестування на змішування та нестабільні.
Здається, міркування полягають у тому, що якщо ви змішаєте стабільність із тестуванням, для самих базових пакетів (наприклад, libc6) знадобляться оновлення (для того, щоб встановити програмне забезпечення з тестування), і як тільки ці основні пакети перейдуть до тестування, вся система може пройти таким чином.
Ось дві альтернативи:
Документація про debian є великою темою, і я настійно раджу зануритися, оскільки це справді розкриє красу системи debian.
Погляньте на те, як зберегти змішану систему , це пояснить усе, що вам потрібно знати.
Інший спосіб, який може запобігти встановленню занадто великої кількості залежностей від 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 (та інструменти розробки, особливо дебелпер, devscripts та build-basic), а потім складіть пакет.
Крок за кроком:
add a deb-src line for sid to your sources.list apt-get update apt-get build-dep PACKAGE_NAME apt-get -b source PACKAGE_NAME
Отримані деби повинні бути в поточному каталозі і можуть бути встановлені за допомогою dpkg -i the.deb.
Я роблю це протягом тривалого періоду часу, щоб впевнено сказати, що це досить безпечно і це може бути зручно. З наведеною нижче програмою стабільна версія буде встановлена за замовчуванням, однак Aptitude також дозволить вам вибрати підтримувану або нестабільну версію, якщо це потрібно:
Існує чотири речі, які потрібно відредагувати. Потрібно встановити випуск за замовчуванням, додати джерелам необхідні опори та нестабільне додавання, знижуючи пріоритет фіксації опорних / нестабільних пакетів, а налаштування дисплея придатності потрібно змінити, щоб відобразити закріплення.
Apt :: default-Release "стабільний";
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Офіційна мульти-архітектура amd64 / i386 NETINST # 1 20110205-14: 45] / видавити головну deb http://ftp.us.debian.org/debian/ видавити головне deb-src http://ftp.us.debian.org/debian/ видавити головне deb http://security.debian.org/ видавити / оновити головне deb-src http://security.debian.org/ видавити / оновити головне # видавити-оновити, раніше відомий як "мінливий" deb http://ftp.us.debian.org/debian/ головне видавлювання deb-src http://ftp.us.debian.org/debian/ головний сервіс # стискати спини # http://backports.debian.org/Instructions/ деб http://backports.debian.org/debian-backports головний стис-backports main # нестабільна # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ нестабільний головний deb-src http://ftp.us.debian.org/debian/ нестабільний головний # невільний колишній 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-код # # За замовчуванням Pining є наступним, що є додатком до наших налаштувань: № 990 - для версії, яка не встановлена, але DO належить до нашої настройки "APT :: Default-Relase" стабільний ". № 500 - для версій, які не встановлені і не належать до цільового випуску № 100 - для вже встановлених пакетів, це також означає інші версії цього ж пакету №1 - для експериментальних пакетів; пакети з "NotAutomatic: так" # # Наші шпильки № 400 - бекпорти, які можна безпечно встановити без необхідності оновлення інших пакетів # 50 - нестабільні пакети, примусові установки на екрані деталей можуть призвести до конфліктів Пакет: * Контакт: відпустіть n = стиснення-спинки Пріоритет: 400 Пакет: * Pin: випустити a = нестабільно
Aptitude :: UI :: Package-Display-Format "% c% a% M% p% Z% v% V% i";
source.list
ньому слід сказати кодове ім'я jessie
замість squeeze
. Політика Debian testing
майже стабільна, і пакети були майже такими ж новими, як і у unstable
сховищі. Тут у мене не вистачає місця, тому, будь ласка, подивіться на: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates та wiki.debian.org/StableProposedUpdates ; останні два є додатковими джерелами сховища.
Якщо ваш вибір пакунків більше задіяний або інсталяція буде повторена на декількох машинах, ви можете розглянути можливість створення приватного сховища, яке відображає підмножину офіційних сховищ. Для цього потрібно трохи попрацювати, щоб налаштувати сховище, але винагороду легко підтримувати з мінімальним конфігурацією для кожного клієнта та повторюваними результатами при виконанні десятків установок. Я вважаю це корисним навіть тоді, коли встановлюється лише один або два пакети, і використовую цей метод для автоматизації та підтримки встановлення хмари. Один сервер на дешевому VPS може обробляти десятки приватних сховищ.
Щоб налаштувати ваш приватний сервер сховища:
# Install aptly.
apt-get install aptly
# Create local mirror (choose a source mirror near you).
aptly mirror create -filter="mirror-contains-no-packages" stretch-roundcube http://httpredir.debian.org/debian stretch main
# Configure filters for local mirror.
aptly mirror edit -filter="Name (% roundcube*)" stretch-roundcube
# Update local mirror.
aptly mirror update stretch-roundcube
# Drop previously published repositories and mirrors, if running these commands in a script.
aptly publish drop stretch
# Drop snapshot, if running these commands in a script.
aptly snapshot drop stretch-roundcube
# Create new snapshot.
aptly snapshot create stretch-roundcube from mirror stretch-roundcube
# Publish snapshot.
aptly publish snapshot -architectures=i386,amd64 -distribution=stretch -component=roundcube -label="Your Name" -origin="Your Name" stretch-roundcube
Потім налаштуйте ваш веб-сервер за вибором для обслуговування статичних файлів репозиторію. Можливо, захистити сховище сертифікатом безпеки та базовою автентифікацією.
Щоб автоматично підтримувати ваше приватне сховище та витягувати оновлення з висхідного потоку, покладіть вище в сценарій та запустіть із завдання cron.
Щоб налаштувати клієнтську машину, на своєму клієнтському комп'ютері:
# Configure private repository without authentication.
echo 'deb http://private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
# Configure private repository with authentication.
echo 'deb https://hostname:password@private.repository.example.com/ stretch roundcube' > /etc/apt/sources.list.d/private.repository.example.com.list
apt-get install apt-transport-https
# Update.
apt-get update
# Install package.
apt-get install roundcube
Для обслуговування клієнтської машини та залучення всіх оновлень приватного репозиторію на клієнтській машині:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
Інший варіант - завантажити замість вихідного пакету тестування. APT може автоматично створити вихідний пакет після завантаження. Таким чином, тестування оновлень не впливатиме на ваші стабільні пакети. Єдина компроміс полягає в тому, що це займе більше часу, ніж просто завантаження та встановлення двійкового пакету.
Щоб налаштувати APT для завантаження вихідних пакетів з тестування, просто додайте:
deb-src http://<your debian mirror here> testing main
Якщо ви просто хочете слідкувати за поточним тестуванням, а не майбутніми тестуваннями, замініть "тестування" на поточне кодове ім'я (на момент написання це "buster")