Debian veya Ubuntu'ya (apt) yalnızca belirli bir paketin bağımlılıklarını yükleme


18

Bir paketi doğrudan apt-get (veya dpkg'ın başka bir ön ucu) ile yüklemek ve ardından derhal kaldırmak, bağımlılıklarını bırakmak yerine, yalnızca gerekli bağımlılıkları kurmanın daha iyi bir yolu var mı?

Yanıtlar:


22

apt-cache depends pkgname bir paketin bağımlılıklarını gösterecektir.

Hepsini tek bir komutta istiyorsanız, aşağıdakilerden daha kötüsünü yapabilirsiniz:

apt-get install `apt-cache depends pkgname | awk '/Depends:/{print$2}'`

16

apt-get tam olarak bunun için bir komut sağlar ...

apt-get build-dep <package name>

Aldığınız man sayfalarından

build-dep, kaynak paketin derleme bağımlılıklarını karşılamak amacıyla apt-get paketlerini kurar / kaldırır. Varsayılan olarak, bağımlılıklar paketi yerel olarak oluşturmak için karşılanır. İstenirse bunun yerine --host-architecture seçeneğiyle bir ana makine mimarisi belirtilebilir.


9
Orada arasında bir fark olamaz build dependenciesve dependencies? Olduğu gibi, normalde bir program yüklerseniz, aslında çalıştırılması gereken bağımlılıklar elde edersiniz ve yapı bağımlılıkları ile kütüphaneler, derleyiciler, bunun gibi şeyler hakkında daha fazla düşünüyorum. Emin olmadığım için (bu cevabın upvotes var) ama bana göre yapı bağımlılıkları elde etmek, paketlerin sahip olduğu (çalışma) bağımlılıklarını almakla aynı şey değil mi?
Nanne

1
Haklısın. Bunu cevaplarken, çok uzun zaman önce, yapı bağımlılıkları (inşa süresi) ve bağımlılıklar (çalışma süresi) arasındaki farkı tam olarak anlayamadım. Nanne'yi açıkladığın için teşekkürler!
Nathan Crock

4

aptitude, yükleme sırasında paket adı yerine bir sorgu belirlemenize izin verir. Adlı paketin bağımlılıklarını yüklemek fooistiyorsanız, aşağıdakilere ters bağımlılığı olan paketleri yükleyebilirsiniz foo:

aptitude install '?reverse-depends(foo)'

veya

aptitude install '~Rfoo'

Bir paketi yükleyip ardından kaldırmayla ilgili sorun, bağımlılık olarak yüklenen paketlerin tümü "otomatik olarak yüklendi" olarak işaretlenecek ve herhangi bir yükleme / kaldırma / yükseltme eylemi tarafından uygun bir şekilde veya siz çalıştırmadığınız apt-get autocleansürece kaldırılacağıdır. aptitude markveya apt-markkomutunu kullanarak manuel olarak yüklendi olarak işaretleyin .

Ancak, bu bunu neden yapmak isteyeceğinizin en iyi tahminini soruyor, elle derleyeceğiniz bazı yazılımlar için bağımlılıklar kurmaya çalışıyorsunuz. Bu durumda, derleme bağımlılıklarını önce ile yüklersiniz apt-get build-dep packagename, ancak daha sonra equivdoğru bağımlılıklara sahip bir sahte paket oluşturmak için paketi kullanarak çalışma zamanı bağımlılıklarına sahip (genellikle derleme bağımlılıklarından farklı olan) bir sahte paket oluşturmalısınız. elle derlenmiş programınız. İlgili bilgileri görme equivsiçinde APT NASIL


3

Kaynaklardan pkgname oluşturulması durumunda

apt-get build-dep pkgname

1
derleme bağımlılıkları çalışma zamanı bağımlılıkları değildir
16:32

>> Kaynaklardan pkgname oluşturulması durumunda
eri

Nerede garanti edildiğini / belgelendiğini bilmiyorum. Ayrıca, hala hiçbir amaç için aynı şeyi yapmaz. Her zaman build-dep kullanıyorum ama şu anki soruya daha iyi bir cevap istiyorum. Ben de buna ihtiyacım var.
sehe
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.