Soru Debian'ı nasıl kararlı bir şekilde çalıştırabilirim, fakat bazı paketleri testten yükleyebilir miyim?


Bir sunucu çalıştırıyorsunuz ve sadece gerekli bir paketi veya ikisini yüklemek için Stable'dan (Lenny) Testing'e (Squeeze) yükseltme yapmak istemediğinizi varsayalım.

Testten sadece belirli paketleri kurmanın en iyi yolu nedir?


181
2018-06-09 07:53


Menşei


En son resmi belgelerin söyledikleri budur: Karışık arşivlerden paketler. - Alexey


Cevaplar:


Birçok kişi testlerle sabit bir şekilde karışmaktan korkuyor gibi görünmektedir, ancak açıkçası testler kendi başına oldukça istikrarlıdır ve uygun tercihler ve çözüm kontrolü ile çekirdek paketlerinizi kararsız yollara koyan “stabilite kaymasını” önleyebilirsiniz.

"Test oldukça kararlı mı?", sen sor. Evet. Bir paketin dengesizden sınamaya geçmesi için, ardışık 10 gün boyunca sıfır açık hataya sahip olması gerekir. Şanslar, özellikle daha popüler paketler için, bir şeylerin yanlış olması durumunda birisinin kararsız bir versiyon için bir hata raporu sunmasıdır.

Ortamları karıştırmak istemiyor olsanız bile, kararlı olandan daha yeni bir sürüm gerektiren bir şeye girmeniz halinde oradaki seçeneğe sahip olmak yine de güzel.

Bunu kurmak için önerdiğim şey:

İlk olarak, aşağıdaki dosyaları oluşturun. /etc/apt/preferences.d:

security.pref:

Package: *
Pin: release l=Debian-Security
Pin-Priority: 1000

stable.pref:

Package: *
Pin: release a=stable
Pin-Priority: 900

testing.pref:

Package: *
Pin: release a=testing
Pin-Priority: 750

unstable.pref:

Package: *
Pin: release a=unstable
Pin-Priority: 50

experimental.pref:

Package: *
Pin: release a=experimental
Pin-Priority: 1

(Buradaki dengesiz / deneysel şeylerden korkmayın. Öncelikler, hiçbir zaman bu şeylerin hiçbirini otomatik olarak kurmayacak kadar düşüktür. Test şubesi bile, sadece istediğiniz paketleri kurmaya devam edecek gibi davranacaktır. testte.)

Şimdi, eşleşen bir küme oluşturma /etc/apt/sources.list.d:

security.list:

deb     http://security.debian.org/         stable/updates  main contrib non-free
deb     http://security.debian.org/         testing/updates 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

testing.list: İle aynı stable.listhariç testing.

unstable.list: İle aynı stable.listhariç unstable.

experimental.list: İle aynı stable.listhariç experimental.

Steadfast.net aynasını istediğiniz gibi değiştirebilirsiniz. Kullanmanı tavsiye ederim netselect-apt En hızlı yansıtmayı bulmak ve ilk tercihiniz için bunu kullanın. ftp.us.debian.org Yedekleme olarak kullanılabilir. Şartları kullanmak da önemlidir stable, testing, unstableyerine squeeze, wheezy, sidvb. stable hareketli bir hedeftir ve en son kararlılığa yükseltmek için zaman geldiğinde, apt / yetenek otomatik olarak bunu belirleyecektir.

Ayrıca ekleyebilirsiniz oldstable içinde sources.lists.d ve preferences.d (1'in önceliğini kullanın), bu monikerin bir sonraki kararlı döngüden önce sona ermesi ve kaybolacaktır. Böyle durumlarda, kullanabilirsiniz http://archive.debian.org/debian/ ve Debian versiyonunu "hardcode" (etch, lenny, vs.).

Bir paketin test sürümünü kurmak için aptitude install lib-foobar-package/testingveya sadece yeteneğin GUI'sine atlayın ve paket ayrıntılarının içindeki sürümü seçin (baktığınız pakete isabet verin).

Paket çakışmalarıyla ilgili şikayetler alırsanız, önce çözümlere bakın. Çoğu durumda, ilki "bu sürümü yüklemeyin". Paket başına kabul / ret çözümleyici seçeneklerini kullanmayı öğrenin. Örneğin, foobar-package / testing kuruyorsanız ve ilk çözüm "foobar-package / testing yüklemeyin" ise, bu seçimi reddedilmiş olarak işaretleyin ve diğer çözümler bir daha asla bu yola geri dönmeyecektir. Bu gibi durumlarda, muhtemelen birkaç başka test paketi yüklemeniz gerekecektir.

Çok kıllılaşıyorsa (libc veya çekirdek veya başka bir büyük çekirdek sistemi yükseltmeye çalışıyorsa), ya bu yükseltme yollarını reddedebilir ya da sadece ilk yükseltme aşamasından tamamen geri döndürebilirsiniz. İzin verirseniz, yalnızca bir şeyi test / dengesizliğe yükselteceğini unutmayın.


166
2018-04-23 02:38



Bunu kullanmaya çalışıyorum ama hiçbir bağımlılığı çözemiyorum. Ne apt-get gibi görünmüyor, ne yetenek ne de test reposundaki bağımlılıkları araştırmayacak. Bunu çözmenin bir yolu var mı? - Tamás Szelei
Kaçtın mı apt-get update config dosyalarını oluşturduktan sonra? - Flow
Güncellemeler ve backportlar ne olacak? - dgrant
ÖNEMLİ: yazar, sabit / güvenlik için bir sabitleme tercih değeri seçti. daha yüksek Varsayılan Sürüm değerinden daha ... serverfault.com/a/653552/120130 daha fazla bilgi için - Alex Ryan
Bu cevap sistemimi kırdı. Bir girişimden sonra sudo apt-get updateBir güncelleme hatası var. Sonra tekrar başladı, beni verdi. Xsession error, tekrar başlatıldı ve şimdi gui'm yok. /dev/sda1/ şimdi dolu. Harika. - luchonacho


İçinde /etc/apt/apt.conf.d aşağıdaki dosyayı ekle

99defaultrelease:

APT::Default-Release "stable";

içinde /etc/apt/sources.list.d - Test / kararsız kaynaklar için URL'ler 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

koşmak

apt-get update

ve ihtiyacınız olan şeyleri kurun

apt-get -t testing install something

Çok fazla bağımlılığı olan şeyler yüklerseniz çok dikkatli olun. Tercihen bunu üretimde yapmayın.

Ayrıca şansınızı deneyebilirsiniz backports veya benzer bir depo.


90
2018-06-09 07:57



Vay. Bu hızlı oldu. Karşılaştığım bilgileri paylaşmak için beni gönderiyordum! Güzel! - Gareth
Daha önce apt.conf yöntemini daha önce hiç kullanmadım. Tercihler dosya yönteminden daha basit görünüyor, ancak size daha az kontrol sağlıyor. - Coops - Coops
Cevap yükseltme ihtiyacı var; Bu yapılandırma, artık sıkıştırmayı yavaşlattığından ve lennylerin eski haline gelebileceği şeyleri tamamen bozacaktır. - El Yobo
Artık kullanılamıyor, lütfen güncelleyin - Lothar
daha yeni debian sürümlerinde apt.conf dosyası yok, bunun yerine /etc/apt/apt.conf.d/70debconf dosyasını düzenleyin - Hayden Thring


apt_preferences

Sistemin / etc / apt / preferences dosyasına 'güvenli yükseltme' yapması gereken varsayılan düzeyi tanımlayın:
man apt_preferences

Apt_preferences ile yapabileceğiniz çok şey var ama sadelik uğruna ...

Yalnızca Test'te mevcut olan tek bir paket (autoMysqlBackup) yüklemem gerekiyordu. Çözüm aşağıdakileri / etc / apt / preferences'a 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 yeteneğine eklenen çoklu depolarla artık daha sonraki sürüm depoları listelenmiş olsa bile (yalnızca bu durumda 'kararlı'), belirtilen sürümünüzü yükseltmeniz yeterli olacaktır.

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 yüklemek için yapmanız gereken tek şey:

$ aptitude install -t testing packageName 

46
2018-06-09 08:04



Bu da, apt.conf kadar hızlı değil, tüm farklı kaynaklarınızı göreceli olarak kontrol etmenizi sağlar. - Coops
Bu, görev için çok karmaşıktır ... APT :: Default-Release kullanımı, bırakmanın pim önceliğini 990'a ayarlar (900'e ayarladığınıza benzer şekilde) ve geri kalanlar için negatif iğneleme gerçekten gerekli değildir. Her ne kadar, sürüm yükseltme işlemleri sırasında, kararlı paketin her zaman önceliği vardır ve komut satırında açıkça bir şey listeledikten sonra, olumsuz sıkma önceliği çoğunlukla göz ardı edilecektir. - Raphaël Hertzog
Size nasıl cevap vereceğimi bilmiyorum. Bir şeyler yapmanın çok zarif bir yolu gibi görünüyor. Yıllar önce pinpayı kullanıyorum ama asla anlamadım. Yukarıda kullandığım örnekler doğrudan apt_preferences man sayfasından alınmıştır. - Gareth
Bu işlemin sıkı çalıştığını doğrulayın. - tomfanning
@Lothar: Debian 6 üzerinde çalışıyor. Sadece dosya mevcut olmadığı için çalışmadığı anlamına gelmez. Sadece dosyayı oluşturun ve ayarları ekleyin. Man sayfasından alıntı: "Tercihler dosyası yoksa veya dosyada belirli bir sürüme uygulanan herhangi bir giriş yoksa, o sürüme atanan öncelik bu sürümün ait olduğu dağıtımın önceliğidir." - rzetterberg


Debian dokümantasyonu konuyla ilgili kapsamlı ve ben debian sisteminin güzelliğini tam olarak ortaya çıkaracağından emin olmanızı şiddetle tavsiye ediyorum.

Şuna bir bak Karma bir sistem nasıl saklanır, bilmeniz gereken her şeyi açıklayacaktır.


12
2018-06-09 08:24



Bu, @pQd tarafından cevapta kullanılan aynı yöntem gibi görünüyor, bu yüzden debian> = 6.0 için geçerli değil. Ayrıca bağlantı başlığı şimdi "eski belgeler" diyor. Ayrıca çoğunlukla sadece cevabı link. - dequis
Bağlantının güncelliğini yitirdiğinden @dequis doğru olsa da, bir paketi istikrarsızdan yüklemek için bir Debian 8 (test) talimatlarını takip ettim ve her şey gayet iyi çalışıyor gibi görünüyor. Güncel bir belge bağlantısı olan var mı? - domsson
Bu sizin aradığınız şey olabilir:debian.org/doc/manuals/debian-reference/... - tomdeb


Değeri için, her zaman gördüğüm genel tavsiyeler "Hiçbir şeyle istikrarı karıştırmayın." Karma sistemlerin çoğu, testlerin karıştırılması ve kararsızlık içindir.

Muhakeme, test ile istikrarlı bir şekilde karışırsanız, çok temel paketlerin (libc6 gibi) güncellemeler gerektirmesi (yazılımın testten yüklenmesi için) ve bu temel paketlerin test edilmeye başlaması durumunda, tüm sistemin bu şekilde kayması olabilir.

İşte iki alternatif:

  1. kullanım backports.
  2. Testten bir kaynak hattı yükleyin ve Kaynaktan istediğiniz sonraki sürümü kurmak.

10
2018-06-09 13:09



Katılıyorum. Sadece wheezy / kararlı sürümde bir hata nedeniyle testten libdvdread4 güncellemeyi denedim. Yine de en son libc'yi getirmek istiyor. Bu yüzden, libdvdread4 için kaynak paketini kararlı bir şekilde yakaladım ve 1 satır kaynağı değişikliği ile düzeltdim ve yeniden oluşturdum. Her türlü paketin test edilmesinden daha iyi bir yol. Şimdi tüm paketler hala "kararlı" olanlar ve ihtiyacım olan 1-satır değişikliğe sahibim. - dgrant


Testing veya Sid'den çok fazla bağımlılığın yüklenmesini engelleyebilecek bir başka yöntem şudur: Paketin kaynağını Testing veya Sid'den almayı ve Debian araçlarını kullanarak sisteminiz için bir paket oluşturmayı (manuel olarak tinker yapmaya gerek olmadığını) söylersiniz. kaynaklarla).

Buradan alıntı yapmak:
https://wiki.debian.org/DebianUnstable#How_do_I_backport_a_sid_package_to_testing_or_stable.3F

Bir sid paketini sınamak veya sabitlemek için nasıl yedeklerim?

Debian kaynağını (ve özellikle geliştirme araçlarını) yükleyin   debhelper, devscripts ve build-essential) ve sonra inşa   paketi.

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 

Elde edilen deb'lar mevcut dizinde olmalı ve   dpkg -i the.deb ile yüklendi.


7
2018-03-13 17:02





Bunu yeterince güvenli ve uygun hale getirilebileceğini söyleyerek emin olmak için uzun bir süre boyunca yapıyorum. Aşağıdaki kurulum kararlı sürümü ile varsayılan olarak yüklenir, ancak Aptitude ayrıca istenirse backported veya kararsız sürümü seçmenize izin verecektir:

enter image description here

Düzenlenmesi gereken dört şey vardır, varsayılan sabitleme sürümünün ayarlanması gerekir, kaynakların backport'lara ve kararsız eklere ihtiyaç duyması, backport'ların / kararsız paketlerin sabitleme önceliğini düşürür ve yetenek görüntüleme ayarlarının sabitleme göstermek için değiştirilmesi gerekir.

  • Oluşturmak '/Etc/apt/apt.conf.d/10defaultrelease' ve içeriğini aşağıdaki gibi yapın:
Apt :: default-Release "kararlı";
  • Düzenleyin '/Etc/apt/sources.list' kararsız ve backport kaynakları eklemek için bu şekilde bir şey görünüyor:
# deb cdrom: [Debian GNU / Linux 6.0.0 _Squeeze_ - Resmi Çok-mimarisi amd64 / i386 NETINST # 1 20110205-14: 45] / ana sıkıştırma

deb http://ftp.us.debian.org/debian/ squeeze main
deb-src http://ftp.us.debian.org/debian/ squeeze main

deb http://security.debian.org/ sıkmak / güncellemek ana
deb-src http://security.debian.org/ sıkmak / güncellemek ana

# squeeze-update, daha önce 'volatile' olarak bilinir
deb http://ftp.us.debian.org/debian/ squeeze-updates main
deb-src http://ftp.us.debian.org/debian/ squeeze-updates main

# sıkmak backports
# http://backports.debian.org/Instructions/
deb http://backports.debian.org/debian-backports sıkmak-backports ana

# 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

# ücretsiz olmayan güneş java
#deb http://ftp.us.debian.org/debian/ sıkılmadan sıkıştırın
# deb-src http://ftp.us.debian.org/debian/ sıkmasız
  • Düzenle etc/apt/preferences sabitleme dosyası - dosya mevcut değilse bunu oluşturun.
# 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ğunda en yüksek PIN yüklüdür
#
# Pining varsayılanı, ayarlarımıza ek olarak aşağıdaki gibidir:
# 990 - yüklü olmayan sürüm için "APT :: Default-Relase" kararlı "` ayarımıza aittir.
# 500 - yüklü olmayan ve hedef sürümüne ait olmayan sürümler için
# 100 - daha önce yüklenen paketler için, aynı paketin diğer sürümleri de anlamına gelir
# 1 - deney paketleri için; "NotAutomatic: yes" ile paketler
#
# İpuçlarımız
# 400 - diğer paketleri güncellemeye gerek kalmadan güvenle kurulabilecek backport'lar
# 50 - kararsız paketler, ayrıntılar ekranına zorla yüklenebilir, çakışmalara neden olabilir

Paket: *
Pin: serbest bırakma n = sıkma-backports
Pin Önceliği: 400

Paket: *
Pin: bırakın a = kararsız
  • yaratmak '/Etc/apt/apt.conf.d/100guiconf' ve Aptitude'u kurmak için bilgi sabitleme görüntülenir.
Yetenek :: UI :: Paket-Ekran-Format "% c% a% M% p% Z% v% V% i";

4
2018-02-04 22:59



Sadece, yukarıdakilere ek olarak, tüm sistem paketlerini 'test' geliştirme depolarından çalıştırmaya karar verdiğim bir güncelleme. Yani source.list kod adı söylemeliyim jessie yerine squeeze. Debian’ın politikası testing istikrarlı ve paketler neredeyse yeni unstable deposu. Burada uzayıyorum, lütfen bir göz atın: wiki.debian.org/DebianReleases, wiki.debian.org/StableUpdates, ve wiki.debian.org/StableProposedUpdates; Son iki ek depo kaynakları. - Daniel Sokolowski


Paketler seçiminiz daha fazla içeriyorsa 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, her bir istemci üzerinde düz bir kurulum azlığı ve düzinelerce kurulum yaparken tekrarlanabilir sonuçlar ile sürdürülmesi kolaydır. Bunu yalnızca bir veya iki paket yüklendiğinde bile faydalı buluyorum ve bulut kurulumlarını otomatikleştirmek ve sürdürmek için bu yöntemi kullanın. Ucuz bir VPS'deki tek bir sunucu düzinelerce özel depoyu 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

Daha sonra, statik depo dosyalarına hizmet vermek için seçtiğiniz web sunucunuzu yapılandırın. Depoyu bir güvenlik sertifikası ve temel kimlik doğrulaması ile koruyun.

Özel deponuzu otomatik olarak korumak ve güncellemeleri yukarı akıştan almak için yukarıdakileri bir komut dosyasına koyun ve bir cron işinden çalıştırın.

İstemci makinenizi, istemci makinenizde yapılandırmak için:

# 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 makinenizde çekmek için:

# Update.
apt-get update

# Upgrade.
apt-get upgrade

2
2017-07-06 18:53





Başka bir seçenek, kaynak paketi yerine test etmektir. APT, indirdikten sonra kaynak paketi otomatik olarak oluşturabilir. Bu şekilde, kararlı paketleriniz test güncellemelerinden etkilenmez. Tek ticaret-off, sadece ikili paketi indirip kurmaktansa daha fazla zaman alacaktır.

APT'yi testten kaynak paketlerini indirecek şekilde yapılandırmak için şunları ekleyin:

deb-src http://<your debian mirror here> testing main

Mevcut testi ve gelecekteki testleri takip etmek istemezseniz, "test" i şu anki kod adıyla değiştiriniz (bu yazıdan sonra "buster" yazıyor)


0
2018-02-16 03:15