Yanıtlar:
remove
adını taşıyan paketleri kaldırır.autoremove
artık gerekli olmayan otomatik olarak yüklenen tüm paketleri kaldırır. Sonra paket adlarını listelemek yanlıştır autoremove
; bunlar dikkate alınmayacaktır (ve tüm uygun paketler kaldırılacaktır).--purge
kaldırılan paketlerle ilişkili sistem çapında yapılandırma dosyalarının da kaldırılmasına neden olur. Buna, remove
veya gibi bir komut eşlik etmelidir autoremove
. --purge
Bayrak bir komutun harekete değiştirir; kendi başına hareket etmez.purge
ile aynı anlama gelir --purge remove
(aynı olanla remove --purge
). purge
İki kere söylemek yanlıştır ; ikincisi purge
, purge
d olması gereken bir paketin adı olarak yorumlanır , ki bu muhtemelen istediğiniz gibi değildir.Bu komutların ne yaptığını ve nasıl farklı olduklarını anlamak için, iki kavramı anlamaya yardımcı olur (ve muhtemelen gereklidir):
Kurulu bir paket manuel veya otomatik olarak kurulur.
Yükleme için bir paket belirlediğinizde ve yüklendiğinde, el ile yüklenir.
Ancak diğer paketler de kurulabilir. Çoğu paketin bağımlılıkları vardır - bu paketlerin istendiği gibi çalışması için yüklenmesi gereken diğer paketler. Bir paketi yüklediğinizde, daha önce yüklenmiş olanlar hariç, bağımlılıkları (yani, bağımlı olduğu diğer paketler) yüklenir.
Yüklenmeniz gereken bir paket belirtilmediğinde, bunun yerine yüklemeyi belirttiğiniz paketin bağımlılığı olarak yüklendiğinde, paket otomatik olarak yüklenir.
Yüklü iki paketiniz varsa ve bunlardan biri diğerinin bağımlılığı olduğunda, bu bağımlılığın otomatik olarak yüklendiği anlamına gelmez. Bağımlılığın manuel olarak kurulması da mümkündür (örneğin, sizin tarafınızdan belirtildiği gibi, buna bağlı olan paketten önce veya buna bağlı olarak aynı anda yüklenmiş olabilir).
En sonunda:
apt-mark
nasıl veya hangi koşullarda kurulduklarına bakılmaksızın, herhangi bir paketi manuel veya otomatik olarak yüklendi ( komutla) olarak işaretleyebilirsiniz .Genellikle, otomatik olarak yüklenen her paket için, ona bağlı olan (ve otomatik olarak yüklenmesine neden olan) en az bir elle yüklenmiş paketiniz olacaktır. Ancak, otomatik olarak yüklenen bir pakete bağlı olarak el ile yüklenen tüm paketleri kaldırırsanız, otomatik olarak yüklenen paket artık gerekli olmayacak, ancak yine de yüklenecektir.
apt-get autoremove
artık manuel olarak kurulan paketi olmayan otomatik olarak kurulan paketleri kaldırır.
Paket, söz konusu paketin yüklü olduğu her sistemde olması ve aynı kalması amaçlanan dosyaları sağlar. Bu tür dosyalar, yüklü programlar için yürütülebilir dosyalar, kaynaklar, belgeler ve diğer "varlıklar" sağlar. Genellikle bu paketin sağladığı "dosyalar" adını verdik.
Ancak bir paket (muhtemelen) değiştirilmesi amaçlanan diğer dosyaları da sağlar. Bunlara global (veya sistem çapında) yapılandırma dosyaları denir. Neredeyse her zaman /etc
dizine yüklenirler ve yüklü programların davranışını değiştirmek için otomatik ve manuel olarak değiştirilebilirler. Örneğin sudo
, bir yapılandırma dosyası /etc/sudoers
ve daha fazla yapılandırma dosyası için bir dizin vardır /etc/sudoers.d
. Bu dosya ve bu dizine eklenen tüm dosyalar, kimlerin sudo
hangi yollarla kullanmasına izin verildiğini belirtir .
Genellikle bir paketin kaldırılıp sonra geri yüklenmesinin davranış biçimini değiştirmemesi istenir ( paket dosyaları bozuk olmadıkça ve bu yüzden elbette yeniden yüklediyseniz). Bu nedenle, genellikle bir paket kaldırıldığında, paket dosyaları silinir, ancak sistem geneli yapılandırma dosyalarına dokunulmaz.
Bir paketi sistem genelinde yapılandırma dosyalarının da silinmesi gerektiğini belirtmeden kaldırdığınızda, buna paketi "kaldırmak" denir.
Paketi kaldırırken paketin sistem genelinde yapılandırma dosyalarını da silmek istiyorsanız, buna "temizleme" adı verilir.
apt-get remove
bir paketi kaldıracak; yani, paketi kaldıracak ancak sistem çapında yapılandırma dosyalarını bırakacaktır.
apt-get purge
bir paketi temizleyecek; yani, paketi kaldıracak ve ayrıca sistem çapında yapılandırma dosyalarını sildiğinizden emin olacaktır.
Paketleri temizlemenin başka bir yolu da --purge
bayrağı kullanmaktır . Bu apt-get
ne yapacağını söylemez ; bunun yerine, hangi terimlerin (veya "komutların") remove
yapmasını istediğini değiştirir. --purge
İşaretin herhangi paket kaldırmaları kaldırılmakta paketi (ler) için sistemsel yapılandırma dosyalarının silinmesi eşlik neden olur. Başka bir deyişle, --purge
bayrak kaldırma işlemlerini tasfiyeye dönüştürür.
Komuta --purge
sahip olduğumuzda neden bayrağa sahibiz purge
? Sonuçta, sudo apt-get --purge remove packagename
eşdeğer değil sudo apt-get purge packagename
. Eşdeğerler. Nerede --purge
Eğer komutların davranışını değiştirmek istediğinizde kullanışlı geliyor diğer daha remove
.
Örneğin, artık gerekli olmayan otomatik olarak yüklenen paketleri kaldırmak istediğinizi varsayalım (bunlara bağlı olarak artık manuel olarak yüklenen paket olmadığından), ancak yalnızca otomatik olarak yüklenen bu paketleri kaldırmak istemiyorsanız, ayrıca silmek istersiniz sistem çapında yapılandırma dosyaları. Sonra koşabilirsiniz:
sudo apt-get --purge autoremove
Bir kullanım daha düşünelim --purge
. --reinstall
Kurulumları yeniden kurulumlara dönüştüren bir bayrak var . Bu, normalde, önceden yüklenmiş bir paketi yüklemeye çalıştığınızda, hiçbir şey olmayacağını veya (paket otomatik olarak yüklendi olarak işaretlenmişse) paketin manuel olarak yüklendiğini işaret eder. Ama birlikte --reinstall
bayrak, zaten olması nedenleri yüklü bir paket yükleme kaldırıldı ve daha sonra geri yüklenir :
sudo apt-get --reinstall install packagename
Ancak, yeniden yüklediğiniz paketin sistem genelinde yapılandırma dosyalarını silmek istediğinizi varsayalım. Bu biraz yaygındır; bir paket çalışmadığında ve nedenini bilmiyorsanız, yeniden yüklemeyi ve yapılandırmanın varsayılan olarak sıfırlanması için yapılandırma dosyalarını silmeyi deneyebilirsiniz. Bunu başarmak için şunları çalıştırabilirsiniz:
sudo apt-get --purge --reinstall install packagename
--reinstall
Yeniden yükleme içine döner montaj (yani, çıkarma tertibatında elde edilmiş) ve --purge
tasfiye içine yeniden yükleme çıkarılması parçası döner.
Şimdi, örnek apt-get
komutlarınızın her birinin tam olarak ne yaptığı açık olmalıdır :
sudo apt-get autoremove --purge packagenames
Bu, artık onlara bağlı olarak elle yüklenen paketi olmayan otomatik olarak yüklenen paketleri temizler. Yani, bu paketleri kaldırır (paket dosyalarının silinmesini gerektirir) ve sistem çapında yapılandırma dosyalarını da siler.
Burada packagenames
hiçbir şey yapmıyor. Özellikle, isimleri orada listelenen paketleri kaldırmak istiyorsanız, bu sizin istediğiniz gibi davranmayacaktır.
sudo apt-get remove --purge packagenames
Bu tasfiye packagenames
; packagenames
paket adlarının boşlukla ayrılmış bir liste olduğunu varsayarsak hepsini temizler. Yani, onları kaldırır (paket dosyalarının silinmesini gerektirir) ve ayrıca sistem çapında yapılandırma dosyalarını da siler.
Listelenen paketlerden herhangi biri packagenames
yüklü değilse, listedeki varlığının hiçbir etkisi olmayacaktır (bunun yüklü olmadığı konusunda bilgilendirilmeniz dışında). Herhangi bir gerçek paketin adı olmayan paket adlarını listelerseniz, komut bir hatayla başarısız olur .unable to locate packagename
sudo apt-get purge purge packagenmaes
Bu komuttaki olaylardan birini kaldırırsanız purge
, öncekine eşdeğer olur. Durduğu gibi, adı verilen bir paketi temizlemeye purge
ve ayrıca listelenen paketleri temizlemeye çalışır packagenames
. Yana purge
herhangi bir paketin adı değil, bir hata iletisiyle başarısız olur.
sudo apt-get remove packagenames
Bu packagenames
, paket dosyalarının silinmesini gerektiren, listelenen paketleri kaldırır . Bu, sistem çapında yapılandırma dosyalarını silmez (çünkü bir temizleme değil, yalnızca bir kaldırmadır).
sudo apt-get autoremove
Bu, artık onlara bağlı olarak manuel olarak yüklenen paketi olmayan otomatik olarak yüklenen paketleri kaldırır. Bu kendi paket dosyaları silme gerektirir, ama değil (olduğu, bir çıkarma ancak bir temizlik harekatını) onların sistem çapında yapılandırma dosyaları.
Nasıl kullanılacağı hakkında daha fazla bilgi için kılavuz sayfasınıapt-get
tavsiye ederim . Daha genel bilgi için bu kılavuza bakın .