Repo'nun daha yeni sürümleri varken belirli sürümler yüklensin mi?


13

Aşağıdaki paketlere bağlı bir metaforumuz var

Depends: A (=2),
 B (=2),
 C (=2)

Not '=' - En son sürümleri değil, bu belirli sürümleri yüklemek istiyorum.

Bunlara ek olarak:

B , A'ya bağlıdır (> = 1)

C , B (> = 1) ve A (> = 1) değerlerine bağlıdır

Depodaki A, B, C'nin en son sürümleri 2 ise, bu işe yarar.

Ben repo sudo apt-get install my A meta 3 ve B sürüm 3 koydum beri benim-meta-paket aşağıdaki bilgileri ile bitirmek reddediyor:

The following packages have unmet dependencies:
  my-meta-package: Depends: B (= 2) but 3 is to be installed
                   Depends: A (= 2) but 3 is to be installed

A ve B'nin 2. sürümlerini manuel olarak kurarsam, meta paket doğru bir şekilde kurulur, bu da A3 veya B3'e gizli bir bağımlılığın olmadığını gösterir. Metafor birçok makineye otomatik olarak kurulduğundan bu sorun için bir çözüm değildir.

SORU: sudo apt-get install my-meta-package install version 2,2,2 yapmak için ne yapmalı?

Ayrıca, aslında A sürüm 3 ve B sürüm 3 için gereksinimi yaratan genişletilmiş bir bilgi almak için bir yolu var mı?


Oh, cevaplamadan önce tüm soruyu okumadım. Metaforu yeniden paketleyebilir misiniz?
int_ua

2
@int_ua Meta paketin yeniden paketlenmesinin ne yapacağını anlamıyorum.
tim

@belacqua - ben seninleyim, ama geri
dönüşler

Meta paketinizin kontrol dosyası, gibi bağımlı paketlerin açık sürüm numarasını içeriyor (a=2), (b=2)mu?
Anwar

Yanıtlar:


11

Yüklenecek belirli sürümleri seçmeniz ve meta paketi yüklerken aynı anda yüklemeniz gerekir.

sudo apt-get install meta-package package1=2 package2=2 package3=2

İnt_ua'nın cevabının dediği gibi, bununla ters bağımlılıklar bulabilirsiniz:

apt-cache rdepends package

Bu paketlerden herhangi biri hakkında daha fazla bilgi ( mevcut sürümler, bağımlılıklar ve daha fazlası ) öğrenmek istiyorsanız, bunu kullanın:

apt-cache show package

Bunları yüklemeyi bitirdikten ve sistem yükseltmelerini yaparken bu sürümlerde tutmak istediğinizde, belacqua tarafından önerildiği gibi apt- pinning'i kullanmanız gerekecektir .

APT sabitleme

APT sabitleme özelliği, yöneticilerin APT'yi farklı depolardan farklı sürümlerde bulunabilecek belirli paket sürümlerini seçmeye zorlamasına olanak tanır. Bu, yöneticilerin paketlerin sistemdeki diğer paketlerle çakışabilecek veya istenmeyen değişiklikler için yeterince test edilmemiş sürümlere yükseltilmemesini sağlar. Bunu yapabilmek için APT'nin tercihler dosyasındaki (/ etc / apt / preferences) iğneler değiştirilmelidir.


Bu doğru cevap olduğuna inanıyorum, = ve sonra sürüm ile paket adını koyarak
LnxSlck

1
Ben Tymek'in meslektaşıyım ve bu aslında sorunu çözüyor. Bunun gerçekleşmesi için meta paketi tersine çevirmemiz çok kötü. Bazı yaratıcı Pythonlar hazır. Cevabınız için teşekkürler yığınları.
Igor Zevaka

1
Acaba zaman geçtikten sonra daha iyi bir çözüm ortaya çıktı mı?
ygrek

1

Önce bağımlılıkları yüklemeyi deneyebilirsiniz.

sudo apt-get install package=2 burada 2 sürüm

Hangi paketlerin pakete bağlı olduğunu bulabilirsiniz.

apt-cache rdepends package


1
rdepends sürümler hakkında ayrıntılı bilgi vermez, değil mi?
Haziran'da timtam

2
Bağımlılıkların yüklenmesi ilk önce meta paketin bulunmasına meydan okuyacaktır. Bu bir çözüm, ama aradığım çözüm değil.
Haziran'da timtam

1
Bunun çalışması için, depoların belirttiğiniz sürümün kullanılabilir bir sürümüne sahip olması gerektiğini unutmayın, eğer yapmazlarsa hata verecektir.
Thomas Ward
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.