Apt'yi en düşük indirme boyutu için bağımlılık ağacını optimize etmeye nasıl zorlayabilirim?


10

Bazı arka plan bilgileri :

Bildiğiniz gibi, Debian paketinde, Depends: apache2|something-elseörneğin CONTROL dosyasında yazılmış alternatif bağımlılıklar olabilir . Nasıl yok aptben indirme boyutunu en aza böylece seçim için bağımlılıkları hangi seçin ve nasıl bu kılabilirsiniz?

Bazı konumlarda yavaş bir bağlantıdayım ve en küçük toplam indirme boyutunu kullanması gerekiyor. Bunu yapmaya nasıl zorlayabilirim?

Düzenleme: Ben atlama önerileri hakkında sormuyorum.

Edit 2: Bağımlılıkları atlamayı sormuyorum. Tüm bağımlılıkları almaya çalışıyorum, sadece en küçük toplam boyutta, özellikle dikkat çeken ve derinden çapraz package1|package2seçimler.

Düzenleme 3: Bir grepveya başka bir kabuk betiği kabul edilebilir.

Ne yazık ki, mevcut cevaplar soruyu gerçekten cevaplamadığından, gerçekten ödül alamıyorlar. Hala bash senaryosu yazmak isteyen biri için orada!

Edit 4: Ödül, oy vermenizi teşvik ettiğim iyi bir cevaba verilmiş olsa da, hala daha somut bir cevap arıyorum . Ayrıca, bir veya daha fazla paket tarafından sağlanan sanal paketleri zarif bir şekilde ele alırsa, muhtemelen bu cevabı vermek için gerçek bir başka ödül vereceğim .

Yanıtlar:


3

Her zaman tüm bağımlılıkları listelemiş olabilirsiniz, daha sonra elle yüklemek istediğiniz paketleri yükleyebilirsiniz, ancak man sayfalarını ve birkaç forumu aradım, ancak kaynağı bu şekilde açmak için başka bir soruya cevap veremedim. zaten çalışıyor.


Bu yardımcı olabilir, ancak bundan daha spesifik bir şeye ihtiyacım olacak. Yayınınızı daha fazla ayrıntıyla veya bir kabuk komut dosyası ile çalışırken deneyin ve Ubuntu'ya sorun!
nanofarad

1
@ ObsessiveSSOℲ Dürüst olmak gerekirse zamanım yok, ancak bunu yapmak istiyorsanız şu komut: VAR = $ (apt-cache show gedit | grep "Size" | grep -Ev 'I' | sed 's / Size: // g ') size bu komutu kullanarak doldurulmuş bir dizideki değerlerle karşılaştırmak için kullanabileceğiniz paket boyutunu alır. Üzgünüm, daha fazla yardım edemedim.
David

Daha iyi bir şey gelmezse, gerçekten bu ödülün kazananı sizsiniz.
nanofarad

@ ObsessiveSSOℲ alt dependancies ile bir paket örneği verebilir misiniz
David

Olarak basit olarak bir şey wordpressiçerir, apache2|httpd. Ayrıca httpdbunun sanal bir paket olduğunu unutmayın . Size de lütuf vereceğim. Yine de henüz kabul etmeyeceğim.
nanofarad

1

Bildiğim kadarıyla bunu optimize etmenin bir yolu yok. Çoğu şey zaten büyük ölçüde sıkıştırılmıştır, bu nedenle neredeyse tüm dosya boyutunu indirmezsiniz. (Bir sonraki paketi yüklediğinizde, indirilecek veri miktarı ile tüketilecek toplam sabit disk alanı arasındaki farka bakın.)

Ne yaptığınızı biliyorsanız (örneğin, zaten yüklediniz foo, ancak yeniden yüklemeniz gerektiğini söylüyor) ve bir dosya yüklediğinizde tüm bağımlılıkları kapalı bırakmak istiyorsanız, bayrağı ekleyin --no-install-recommends. Bu sorunun
yanıtlarından bazıları , bağımlılık olmadan belirli paketlerin nasıl yükleneceğini açıklar. Benden biraz daha derin kapladılar, bu yüzden hala sorun yaşıyorsanız veya cevabım sorununuzu çözmediyse, bu konuya bir göz atmanızı tavsiye ederim.


-2

Bence bağımlılıkların nasıl çalıştığını karıştırıyorsunuz. Bir şey bağımlıysa, tanım gereği gereklidir. Yapabileceğinizi tam olarak hangi uygulamanın kullanmak istediğiniz bağımlılıktan hangi dosyaları bulmak olduğunu varsayalım ... ve çağırmıyor her şeyi kaldırmak .. ama bu birkaç megabayt için çok iş gibi görünüyor ..

Hâlâ 4. tekerleği kaçırmaya devam edecek bir araba istiyormuşsunuz gibi görünüyor (diyelim ki bu metafor uğruna 'arka-sol'), ağırlıktan tasarruf etmek için. Bir noktada Sağa dönmeniz gerekecek. Araba hala yuvarlanacak, ancak sadece belirli işlevsellik ile ... 'Tavsiye Edilen' i kurmadan, gelişmeyi araştırmak zorunda kalmadan mümkün olduğunca güvenli bir şekilde ışık alacağınızı düşünüyorum.


6
Soruyu gerçekten anlamadınız. Bağımlılıkları bilir. Ancak şunu bilmelisiniz ki, aynı bağımlılığı tatmin eden iki paket olabilir. bu durumda, daha az büyük olanı istedi
Anwar

IMO, bu cevapların downvotlara maruz kalması talihsiz bir durumdur. İyi cevaplar ve umarım kimse cesaretini kırmaz. Sadece soruyu cevapladığınızdan emin olun.
nanofarad

@ açıklamak ve bilgilendirmek için. :) (i aşağı oy umursamıyorum.)
Knope

Önce seni küçümsemedim, sadece konuyu açıkladım. Ama şimdi verdim, çünkü cevap konuyu ele almadı @ ObsessiveSSOℲ sorusunda konuştu
Anwar
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.