Tek bir paketi Debian testinden nasıl kurarım veya kararsız olarak nasıl kurarım?


41

Debian Jessie'den Wheezy sistemime tek bir paket (ve onun bağımlılıklarını, ancak yalnızca Wheezy'de karşılanamayan ölçüde) yüklemek istediğim, "her şeyi ve mutfak lavabosunu" Jessie sürümlerine yükseltmeden. Özellikle, Jessie'de paketlenmiş fakat Wheezy'de bulunmayan kpcli'yi kurmak istiyorum.

Bulduğum her şey, Jessie depolarını kaynak listeme eklemem, her şeyi hırıltılı tutmaya ve sadece tek bir paketi jessie'den almaya çekiştirmem gerektiğini gösteriyor. Ancak, benim için yerine düşmüyor. Aşağıdaki içerikle /etc/apt.d/sources.list.d/jessie.list oluşturursam:

deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main

ve /etc/apt/preferences.d/jessie şununla oluşturun:

Package: *
Pin: release a=wheezy
Pin-Priority: 1001

Package: kpcli
Pin: release a=jessie
Pin-Priority: 450

ve apt-get -u updateardından devam et apt-get -u install kpcli/jessie, sonra kpcli'yi ve belki de küçük bir paket avuç Jessie'yi alıp , sistemimin kalanını el değmeden bırakmayı bekliyorum. (Sistemim tamamen güncel bir Wheezy kurulumu.) Alternatif olarak, eğer pin önceliğini çok düşük aldın, hiçbir şey yapmamasını beklerdim. Aksine, sistemimde apt-get birkaç yüz paketi yükseltmek istiyor.

Wheezy sistemimin kalanını dokunmadan bırakırken, Jessie sürümünün yalnızca bu tek bir paketini kurmak için tam olarak neye ihtiyaç var?

Bu özel durumda, yazılımın aslında Perl'de yazıldığını, bu nedenle ikili dosyaya veya buna benzer bir şey için derlemeye gerek olmadığını unutmayın; ancak, bir avuç Perl modülü bağımlılığı vardır. Dolayısıyla, olası bir alternatif şey kullanarak .deb (el indirilmiş) yüklemek olacağını sadece (1) izin veren tek gibi kurulacağı, yerel .deb arşivi belirterek dpkg -iakıllı bir şekilde ve (2) kolları bağımlılıkları , hangi ova dpkg -ideğil. Bununla birlikte, birkaç kez yaptığım ve yaptığım tüm aramalar için bunun nasıl yapılacağı hakkında basit bir rehber bulmayı başaramadım, genel bir çözüm (ikili, derlenmiş paketler için de işe yarar). .


4
Bununla başa çıkmanın genel yolu backporting ile - paketi Wheezy'deki Debian kaynaklarından yeniden oluşturmak. Kullanmakta olduğunuz paket perl (ya da en azından buna bağlı) gibi görünüyor, bu yüzden muhtemelen geri çekmek zor değil. Daha fazla ayrıntı istiyorsanız, lütfen söyleyin. Gerçekten ihtiyacın olursa, muhtemelen bir yol gösterici sağlayabilirim.
Faheem Mitha

Yanıtlar:


15

Her giriş için (kararlı, test, kararsız) pin önceliğine 500 sahipsin. Pin> 1000 kullanmamalısın. 1001'i sadece bir şeyi düşürmek istediğimde kullanırım. /etc/apt/sources.listAşağıdaki /etc/apt/preferencesdosyada belirtilen test + sid + deneysel girdilerim var :

Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900

Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 130

500 değeri dengesiz için varsayılandır. Öyleyse, iceweasel'i kontrol etmeye çalışalım:

# apt-cache policy iceweasel
iceweasel:
  Installed: (none)
  Candidate: 17.0.10esr-1~deb7u1
  Version table:
     26.0-1 0
        130 http://ftp.pl.debian.org/debian/ experimental/main amd64 Packages
     24.2.0esr-1 0
        500 http://ftp.pl.debian.org/debian/ sid/main amd64 Packages
     17.0.10esr-1~deb7u1 0
        900 http://ftp.pl.debian.org/debian/ testing/main amd64 Packages

Dolayısıyla, iceweasel kurmaya çalışırsam, en yüksek önceliğe sahip olduğu için test dalından indirilirdi.

Öncelikleri değiştirmeye çalış:

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

Package: kpcli
Pin: release a=jessie
Pin-Priority: 910

sudo apt-get -u install kpcli/jessiehala bana 316 upgraded, 137 newly installed, 251 to remove and 1688 not upgraded.önerdiğin öncelikleri veriyor . Ben yaparsanız apt-cache policy perlo öncelik 500 adayı olarak 5.18.1-5 gösterir (o yükseltmek isteyen paketlerinden biri) ve 5.14.2-21 + deb7u1 yüklü da öncelik 500. en Neredeyse, sebebi ne olursa olsun, benziyor apt ... önceliklerini cevap vermiyor
bir CVn

Tamam, bir şey buldum. İşin püf noktası kullanmak Package: kpcli*yerine (yerine Package: kpcli) ve sonra Package: * Pin: release o=Debian Pin-Priority: -10sonunda oldu. O zaman elbette, daha yeni bir libc6'ya ihtiyaç duyan, sadece Jessie'de mevcut olan Perl sürümlerine yol açan zorlu bağımlılıklar var! Dürüst olmak gerekirse, o rotaya gitmek üzere değilim, ama bu en azından peşimden geldiğim sonucu elde etti. Teşekkür ederim!
Bir CVn

25

Aslında, sabitlemeyi / öncelikleri kullanmadan yapmanın bir yolu var. Bunun yerine, paketleri kuracağınız varsayılan sürümün ne olduğunu belirleyebilirsiniz, bu durumda hedef sürüm parametresini kullanarak aksi belirtilmedikçe kullanılır. Bu, yalnızca seçilen paketleri örn. Backports'ten yüklemek isterseniz aynı şekilde çalışır.

Bunu, Stretch'den Jessie'ye paketler kurmak için göstereceğim, bunlar şu anki kararlı / testler. Fakat Jessie paketlerini Wheezy'e yüklemek için de aynı şekilde çalışıyor.

Öncelikle, örneğin /etc/apt/sources.list.d/stretch.list:

deb http://ftp.debian.org/debian stretch main

Ardından, varsayılan sürümü ayarlamak için aşağıdakileri /etc/apt/apt.conf.d/default-releaseiçeren bir dosya oluşturun:

APT::Default-Release "jessie";

(Wheezy'de bence apt.conf.dyoktu ve bu pasajı yerleştirmeniz gerekir /etc/apt/apt.conf).

Ardından, testten bir paket yüklemek, aptitude -t stretch install kpcliöncelik belirleme konusunda endişelenmenize gerek kalmadan basittir .

Not: Eğer kullanırsanız o Açıklamalarda belirttiği @amc aptyerine aptitude, kullanmak zorunda "stable"olduğu Default-Releaseyerine "jessie". Teşekkür ederim! (Tabii ki, aptitudebu ayar ile de kullanabilirsiniz .)


… Bu, bunu yapmak için gerçekten kaygan bir yol gibi görünüyor. Bu neden resmen kabul edilmiyor?
JamesTheAwesomeDude

1
AnladımThe value 'stretch' is invalid for APT::Default-Release as such a release is not available in the sources
Steven Penny

1
apt kullanırken varsayılan serbest bırakılması için yerine "jessie" nin vb / / "streç" "test" / "kararlı" kullanmak gerekir ve
amc

6

Pin: release a=wheezyolmalı Pin: release n=wheezy, belki.

Gönderen adam sayfası :

Aşağıdaki kayıt, Codename "jessie" olan herhangi bir dağıtıma ait tüm paket sürümlerine yüksek öncelik vermektedir.

           Package: *
           Pin: release n=jessie
           Pin-Priority: 900

Yani bu doğru!


3
Bu , Jessy'den TÜM paketleri kurmaz mıydı?
rubo77
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.