Yanıtlar:
İstediğiniz şeyler olabilecek yaprakların yanlışlıkla kesilmesini önlemek port_cutleaves
paket sonra çalıştırın sudo port_cutleaves
https://guide.macports.org/#using.common-tasks.keeplean
MacPorts 1.9.0 ekledi sqlite
portdbformat
ve MacPorts 2.0.0 eskisi gibi düştü flat
biçim . sqlite
port DB formatı yeni kurulumlar için varsayılandır; 1.9.x'e yükseltilen eski kurulumları kullanmaya devam edecek flat
biçim 1 . 1.9.x dönüştürebilirsiniz flat
sisteme sqlite
MacPorts 2.0'a yükselterek veya portdbformat
değeri /opt/local/etc/macports/macports.conf
ve sonra bir Liman root olarak komut (ör. sudo port installed
).
Yeni formatın özelliklerinden biri, “talep edilmeyen” port kurulumlarına karşı “istenen” i izlemektir. İstenmeyen bir bağlantı noktası yalnızca yüklü olan bağlantı noktasıdır, çünkü başka bir bağlantı noktası buna bağlıdır. leaves
sözde port ismi, başka kurulu portun dayanmadığı tüm talep edilmeyen portlara genişler. Bunları, başlangıçta kaldırmadıysanız bile, gereksiz bağlantı noktalarını “temizlemek” için kullanabilirsiniz. sudo port uninstall --follow-dependencies portname
(istediğini yapacaksın, ama sadece bir şeyi her kaldırdığında kullanmayı hatırlıyorsan).
Herhangi birini kaldırmadan önce mevcut yapraklarınızı incelemelisiniz.
port echo leaves
Bazı ortak yapraklar ( automake
, gperf
, libtool
, pkgconfig
) ortak bağlantı noktalarının yapılı-zaman bağımlılıkları olduğundan, onları “talep etmek” isteyebilirsiniz ( sudo port setrequested port1 port2 port3 …
) onları daha sonra yeniden yüklemek zorunda kaldırarak kaldırmak için.
Kalan yaprakları kolayca kaldırabilirsiniz:
sudo port uninstall leaves
Not: Yapraklarınızı budanmadan önce, artık “aktif” olmayan bağlantı noktalarının eski sürümlerini de kaldırmak isteyebilirsiniz. Bu, birkaç yaprak daha ortaya çıkarabilir (yani, yüklü ancak etkin olmayan bağlantı noktalarına bağlı olan bağlantı noktaları):
sudo port uninstall inactive
Var birkaç bölüm içinde MacPorts Kılavuzu Bu da kullanma sürecini açıklar leaves
Gereksiz bağlantı noktalarını kaldırmak için.
while sudo port uninstall leaves; do :; done
Bunu otomatikleştirmek için.
sudo port uninstall --follow-dependents portname
yanlış, çünkü --follow-dependents
"belirtilen porta bağlı olan bütün portları tekrar tekrar kaldır". Burada doğru seçenek --follow-dependencies
"Belirtilen bağlantı noktasının bağlı olduğu tüm bağlantı noktalarını art arda kaldırır. Bu, istenen olarak işaretlenen veya başka bağımlılıkları olan bağımlılıkları kaldırmaz."
Kaldırma işlemi bir yüklü bağlantı noktası
%% sudo port uninstall vile Note
Ayrıca yinelemeli olarak kaldırmak için Verilen limanın bağlı olduğu limanlar, kullan
‑‑follow‑dependencies
bayrağı. Bu bağımlılıkları kaldırmaz istendiği gibi işaretlenmiş veya başka bağımlıları var.Tüm bağlantı noktalarını yinelemeli olarak kaldırmak için daha önce verilen limana bağlı portu kaldırarak,
‑‑follow‑dependents flag
.Bir liman başka bir bağımlılıksa yüklü port, kaldırma olmaz kaldırmadıkça kaldırın ilk önce bağımlı portlar. Geçersiz kılmak Bu davranış, -f (zorla) kullanın. geçin. Bu açıkça belli ki bakmakla yükümlü. Kaldırma işlemini zorlama ne olduğunuzu bilmiyorsanız portlar yapıyor.
%% sudo port -f uninstall vile
Son paragraftaki ana uyarıya dikkat edin. Bağımlılıklar tam olarak - bağımlılıklar - ve farklı uygulamalar aynı bağımlılıkları gerektirebilir (ister).
‑‑follow‑dependencies
vs. ‑‑follow‑dependents
; Alıntılanan bölüm her ikisini de tarif eder, ancak yalnızca birincisi soru için geçerlidir.
Bir bağlantı noktasını ve bağımlılarını kaldırma komutu:
sudo port uninstall foo --follow-dependents
Ancak, kaldırmakta olduğunuz bağlantı noktasının bağlı olması durumunda, -f
bayrak zorla.
Elbette okumaya başlamalıyız. MacPorts Kılavuzu özellikle Kılavuz bölümünü kaldır.
MacPorts'un katkı dizininde gereksiz bağımlılıkları kaldırmak için çalıştırabileceğiniz port_cutleaves adlı bir komut dosyası da var: http://trac.macports.org/browser/contrib/ . Sizden kaldırılacak her bir bağlantı noktası isteyecektir ve isterseniz bazılarını korumanıza izin verir.
Bence diğer cevaplar ve --follow-dependents
bayrak, ne istersen yapma. Yüklerseniz A
, ve A
gerektirir B
, ardından harika paket yönetim sistemleri sayesinde, B
sizin için kurulacak. Kaldırabilirsiniz B
ve --follow-dependents
bayrak farkında olacak ve silecektir A
. Ama ya kaldırırsan A
, daha muhtemeldir, çünkü A
ilk etapta el ile yüklediğiniz şey nedir? Bu durumda, B
geride kaldı.
Eğer fink kullanıyorsanız, debfoster Paket, sisteminizi temizlemek ve kullanılmayan bağımlılıkları kaldırmak için tasarlanmıştır.
Debfoster kurtulmanıza yardımcı olacak paketler (örneğin kütüphaneler) get ne zaman sisteminizde geride kaldı onu gerektiren program kaldırıldı veya olmayan bir sürüme yükseltildi bağımlılığı var.
Süre debfoster
MacPorts için çalışmayacak, bağlantı noktaları gibi görünüyor debfoster
, Örneğin, portsfoster
, kesilmiş gibi görünmesine rağmen ...
MacPorts için şu anda bir çözüm mevcut değil.
apt
Debian tarafından kullanılan sistem. MacPorts kullanmıyorum ama bir fink install debfoster
ve benim için gayet iyi çalıştı.
apt
sistem ve kullanmaz deb
Dosyalar. MacPorts'un fikri FreeBSD portları veya NetBSD pkgsrc ile ilgilidir, ancak uygulama çok farklıdır.
Bağlantı noktası temizliğini otomatikleştirmek için bazı komut dosyaları yazdım: https://github.com/vasi/macports-tools
'Macportsfoster' betiği, istenen listedeki herhangi bir şey için gerekmeyen tüm portların bir listesini çıkartacak, 'port $' ı (macportsfoster) deaktive et '' komutunun hepsini bir kerede kaldıracak şekilde sıralanacak.