Bir sunucu çalıştırdığınızı ve sadece gerekli bir paketi yüklemek için Test (Squeeze) uygulamasından Stable'dan (Lenny) yükseltme yapmak istemediğinizi varsayalım.
Test'ten yalnızca belirli paketleri kurmanın en iyi yolu nedir?
Bir sunucu çalıştırdığınızı ve sadece gerekli bir paketi yüklemek için Test (Squeeze) uygulamasından Stable'dan (Lenny) yükseltme yapmak istemediğinizi varsayalım.
Test'ten yalnızca belirli paketleri kurmanın en iyi yolu nedir?
Yanıtlar:
Pek çok insan testlerle dengelenmiş karıştırmaktan korkuyor gibi görünmektedir, ancak açıkçası testler kendi başına oldukça kararlıdır ve uygun tercihler ve çözüm kontrolü ile çekirdek paketlerinizi dengesiz yola koyan "kararlılık kaymasını" önleyebilirsiniz.
"Test oldukça istikrarlı mı ??" , sen sor. Evet. Bir paketin dengesizlikten sınamaya geçmesi için, ardışık 10 gün boyunca sıfır açık hata olması gerekir. Muhtemelen, daha popüler paketler için, birinin yanlış bir şey varsa dengesiz bir sürüm için bir hata raporu sunması muhtemeldir.
Ortamları karıştırmak istemeseniz bile, istikrarlı olandan daha yeni bir sürüm gerektiren bir şeyle karşılaşmanız durumunda, seçeneğinizin olması yine de güzeldir.
İşte bunu ayarlamak için önereceğim:
İlk önce, aşağıdaki dosyaları oluşturun /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
(Buradaki dengesiz / deneysel şeylerden korkmayın. Öncelikler, bu şeylerin hiçbirini otomatik olarak kurmayacak kadar düşüktür. Test dalı bile, yalnızca istediğiniz paketleri kuracak şekilde davranacaktır. Testte.)
Şimdi, şunun için eşleşen bir küme oluşturmak /etc/apt/sources.list.d
:
stable.list
: Orijinal belgenizden kopyalayın /etc/apt/sources.list
. Eski dosyayı yeniden adlandırın sources.list.orig
.
testing.list
: İle aynı stable.list
, hariç testing
.
unstable.list
: Güvenlik listeleri stable.list
dışında olanlarla aynı unstable
ve bunları kaldırın.
experimental.list
: İle aynı unstable.list
, hariç experimental
.
Ayrıca bu takma bir sonraki kararlı döngüden önce sona erme ve kaybolma eğiliminde olsa da, bir oldstable
giriş ekleyebilir sources.lists.d
ve preferences.d
(1 önceliğini kullan) kullanabilirsiniz. Böyle durumlarda http://archive.debian.org/debian/
, Debian versiyonunu ("etch, lenny, vb.") Kullanabilir ve "hardcode" edebilirsiniz .
Bir paketin test sürümünü kurmak için, basitçe kullanın aptitude install lib-foobar-package/testing
ya da sadece yetenek GUI'sine atlayın ve paket ayrıntılarının içindeki sürümü seçin (bakmakta olduğunuz pakete girin).
Paket çakışmalarından şikayet alırsanız, önce çözümlere bakın. Çoğu durumda, ilki "bu sürümü yükleme" olacaktır. Paket başına kabul / reddetme çözümleyici seçeneklerini kullanmayı öğrenin. Örneğin, foobar-paket / test kuruyorsanız ve ilk çözüm "foobar-paket / test kurmayın" ise, o seçimi reddedilmiş olarak işaretleyin ve diğer çözümler bir daha asla bu yola sapmayacak. Bu gibi durumlarda, muhtemelen birkaç test paketi daha yüklemeniz gerekecektir.
Çok kıllı hale geliyorsa (libc veya çekirdeği veya başka bir büyük çekirdek sistemi yükseltmeye çalışıyor gibi), o zaman bu yükseltme yollarını reddedebilir veya ilk yükseltme işleminden tamamen çıkabilirsiniz. Unutmayın, izin verirseniz yalnızca sınava / dengesiz maddeye yükseltme yapacağınızı unutmayın.
EDIT: Bazı öncelik pinleri düzeltildi ve listeyi güncelledi.
apt-get update
konfigürasyon dosyalarının oluşturduktan sonra?
sudo apt-get update
sonra bir güncelleme hatası alıyorum. Sonra yeniden başlatıldı, bu bana verdi Xsession error
, tekrar başlattı ve şimdi gui'm yok /dev/sda1/
şimdi doludur. Harika.
In /etc/apt/apt.conf.d
aşağıdaki dosyayı ekleyin
99defaultrelease
:
APT::Default-Release "stable";
içinde /etc/apt/sources.list.d
- test / istikrarsız kaynakları için URL'leri ekleyin
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
Çalıştırmak
apt-get update
ve sonra ihtiyacınız olanı yükleyin
apt-get -t testing install something
Çok fazla bağımlılığı olan şeyler kurarsanız çok dikkatli olun. Tercihen bunu üretimde yapmayın.
Siz de şansınızı deneyebilirsiniz backports veya benzeri depo.
apt_preferences
/ Etc / apt / preferences dosyasında sistemin 'güvenli yükseltme' yapması gereken varsayılan seviyeyi tanımlayın:
man apt_preferences
Apt_preferences ile yapabileceğiniz çok şey var ama basitlik adına ...
Yalnızca Test'te kullanılabilen tek bir paket (autoMysqlBackup) yüklemem gerekiyordu. Çözüm, / etc / apt / tercihlerine aşağıdakileri eklemek oldu:
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 listesine birden fazla havuz eklendiğinde, yetenek, daha sonra yayınlanacak repolar listelenmesine rağmen (sadece bu durumda 'kararlı') yalnızca belirtilen sürümünüze yükseltilecektir.
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
Bu paketi kurmak için yapmanız gereken tek şey:
$ aptitude install -t testing packageName
Buna değer, her zaman gördüğüm genel tavsiye "Bir şey ile istikrarlı karıştırmayın" dir. Karışık sistemlerdeki eğiticilerin çoğu karıştırma testi içindir ve dengesizdir.
Bunun nedeni, testle kararlı bir şekilde karıştırırsanız, çok temel paketlerin (libc6 gibi) güncellemeleri gerektirmesi (yazılımın test edilmesini kurmak için) gerekmesi ve bu temel paketlerin teste geçmesiyle tüm sistemin bu şekilde sürüklenebileceği görünüyor.
İşte iki alternatif:
Debian dokümantasyonu konuyla ilgili kapsamlı ve debian sisteminin güzelliğini tam anlamıyla ortaya çıkaracak şekilde kazmayı şiddetle tavsiye ediyorum.
Karma bir sistemin nasıl korunacağına bir göz atın , bilmeniz gereken her şeyi açıklayacaktır.
Testing veya Sid'e çok fazla bağımlılık yüklenmesini engelleyebilecek başka bir yol da şudur: paketin kaynağını Testing veya Sid'den almasını ve sisteminiz için Debian araçlarını kullanarak bir paket oluşturmasını (manuel olarak denetlemenize gerek yok) kaynakları ile).
Buradan alıntı yapmak:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F
Sid paketini teste veya dengelemeye nasıl geri alabilirim?
Debian kaynağını (ve geliştirme araçlarını, özellikle debhelper, devscripts ve build-essential) yükleyin ve sonra paketi oluşturun.
Adım adım:
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
Ortaya çıkan debs mevcut dizinde olmalı ve dpkg -i the.deb ile yüklenebilir.
Yeterince güvenli olduğunu ve uygun hale getirilebileceğinden emin olmak için uzun süredir yapıyorum. Aşağıdaki kurulumda kararlı sürüm varsayılan olarak yüklenir, ancak Yetenek, istenirse desteklenmeyen veya dengesiz sürümü seçmenize de izin verir:
Düzenlenmesi gereken dört şey vardır, varsayılan sabitleme serbest bırakma ayarlanması gerekir, kaynaklar geri desteklemeye ve dengesiz eklemeye ihtiyaç duyar, geri desteklerin / dengesiz paketlerin sabitleme önceliğini düşürür ve yetenek gösterme ayarlarının sabitlenmesi için değiştirilmeleri gerekir.
Apt :: default-Release "kararlı";
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Resmi Çok Amaçlı Mimari amd64 / i386 NETINST # 1 20110205-14: 45] / sıkmak deb http://ftp.us.debian.org/debian/ sıkmak ana deb-src http://ftp.us.debian.org/debian/ sıkmak ana deb http://security.debian.org/ sıkmak / güncellemek ana deb-src http://security.debian.org/ sıkmak / güncellemek # squeeze-update, önceden 'geçici' olarak bilinen deb http://ftp.us.debian.org/debian/ squeeze-updates main deb-src http://ftp.us.debian.org/debian/ squeeze-updates main # sıkma destekleri # http://backports.debian.org/Instructions/ deb http://backports.debian.org/debian-backports squeeze-backports main # kararsız # http://wiki.debian.org/AptPreferences deb http://ftp.us.debian.org/debian/ kararsız ana deb-src http://ftp.us.debian.org/debian/ kararsız ana # özgür olmayan eski güneş java #deb http://ftp.us.debian.org/debian/ sıkıştırmasız sıkmak # deb-src http://ftp.us.debian.org/debian/ olmayan sıkmak
etc/apt/preferences
iğneleme dosyayı - dosya oluşturulduğu do yoksa.# Paket sabitleme öncelikleri # Bkz. Http://wiki.debian.org/AptPreferences ve http://manpages.debian.net/cgi-bin/man.cgi?query=apt_preferences # # Fındık kabuğundaki en yüksek PIN takıldı # # Pining default, ayarlarımıza ek olarak aşağıdaki gibidir: # 990 - yüklü olmayan ancak DO sürümleri için `APT :: Default-Relase" sabit "ayarımıza aittir. # 500 - yüklü olmayan ve hedef sürümüne ait olmayan sürümler için # 100 - önceden yüklenmiş paketler için bu aynı paketin diğer sürümleri anlamına gelir # 1 - deneysel paketler için; "NotAutomatic: yes" ile paketler # # İğnelerimiz # 400 - diğer paketleri güncellemeye gerek kalmadan güvenli bir şekilde monte edilebilecek yedekler # 50 - ayrıntılar ekranına zorla kurulan kararsız paketler çakışmalara neden olabilir Paket: * Pin: bırakma n = sıkma destekleri Pin Önceliği: 400 Paket: * Pin: a = serbest bırak
Yetenek :: Kullanıcı Arabirimi :: Paket Görüntüleme Biçimi "% c% a% M% p% Z% v% V% i";
source.list
kod adını söylemelisiniz . Debian'ın politikası istikrarlıdır ve paketler neredeyse depodaki kadar yeni olmuştur . Buradaki alanım tükeniyor , lütfen bir göz atın: wiki.debian.org/DebianReleases , wiki.debian.org/StableUpdates ve wiki.debian.org/StableProposedUpdates ; Son ikisi ek depo kaynaklarıdır. jessie
squeeze
testing
unstable
Paket seçiminiz daha fazla ilgiliyse veya kurulum birden fazla makinede tekrarlanacaksa, resmi depoların bir alt kümesini yansıtan özel bir depo kurmayı düşünebilirsiniz. Bu, depoyu yapılandırmak için biraz çalışma gerektirir, ancak ödülün her istemcide minimum düzeyde yapılandırma ve onlarca kurulum yaparken tekrarlanabilir sonuçlarla bakımı kolaydır. Bunu yalnızca bir veya iki paket kurulurken bile faydalı buluyorum ve bulut kurulumlarını otomatikleştirmek ve korumak için bu yöntemi kullanıyorum. Ucuz bir VPS'deki tek bir sunucu, düzinelerce özel depoya işleyebilir.
Özel depo sunucunuzu yapılandırmak için:
# 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
Ardından, web sunucunuzu statik depo dosyalarına hizmet edecek şekilde yapılandırın. Muhtemelen depoyu bir güvenlik sertifikası ve temel kimlik doğrulama ile koruyun.
Özel deponuzu otomatik olarak korumak ve yukarı akıştaki güncellemeleri almak için yukarıdakileri bir komut dosyasına yerleştirin ve bir cron işinden çalıştırın.
İstemci makinenizi yapılandırmak için, istemci makinenizde:
# 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
İstemci makinenizi korumak ve tüm özel depo güncellemelerinizi istemci makinenize çekmek için:
# Update.
apt-get update
# Upgrade.
apt-get upgrade
Başka bir seçenek de kaynak paketin testten indirilmesidir. APT, kaynak paketi indirdikten sonra otomatik olarak oluşturabilir. Bu şekilde, kararlı paketleriniz güncellemelerin test edilmesinden etkilenmeyecektir. Tek değişiklik, ikili paketi indirmek ve kurmaktan daha uzun sürmesidir.
APT'yi kaynak paketleri testten indirecek şekilde yapılandırmak için şunu ekleyin:
deb-src http://<your debian mirror here> testing main
Eğer sadece mevcut testleri takip etmek ve gelecekteki testleri takip etmek istemiyorsanız, "test" i geçerli kod adıyla değiştirin (bu yazı itibariyle "buster" olur)