[Nasıl] Kaldırılmış paketlerin geride kalan ayar dosyalarını silme.

Başlatan Aequitas, 13 Ocak 2012 - 16:38:27

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

Aequitas

Kurduğumuz paket dosyalarını artık kullanmıyoruz ve "sudo apt-get purge paketadı.deb" ile değil de "sudo apt-get remove paketadı.deb" ile kaldırdık diyelim. Bu şekilde kaldırdığımız paketlerin yapılandırma dosyaları sistemimizin içinde kalmaya devam ediyor. Olurda ileride tekrar kurarsak önceki ayarları saklı olarak kurmuş oluyoruz.
Ama neticede sistemimizde zaman içinde onlarca gereksiz yapılandırma dosyası birikmiş oluyor.

Sistemimizde kullanılmayan yapılandırma dosyalarını bulmak için aşağıdaki kodu işletmemiz yeterli:
dpkg -l | awk '/^rc/ {print $2}'

Bu yapılandırma dosyalarını kaldırmak için ise şu kodu çalıştırıyoruz:
sudo su
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge


Veya root ile giriş yapmadan:
dpkg -l | awk '/^rc/ {print $2}' | sudo xargs dpkg --purge

Bu şekilde zamanla program kurup kaldırdıkça sistemimizde gereksiz yer kaplayan artıkları temizlemiş oluyoruz.
Herkes önce kendi bilgisayarını temiz tutmalı, sonra kaldırımımızı, sonra çevremizi, sonra.. :)


Öfkelenmeyin.
           Hz. Muhammed (sav)

alquirel

Alıntı yapılan: Aequitas - 13 Ocak 2012 - 16:38:27
dpkg -l | awk '/^rc/ {print $2}'.

Anlatım için teşekkürler.

Sanırım üstteki komutun sonundaki "nokta" işaret fazladan konulmuş, öyle mi?

gufabe

Ek olarak temizliğe başlama işleminden önce şu hatayı alırsanız;

dpkg: error: requested operation requires superuser privilege

alttaki komutu, ardından parolanızı girerek yeniden deneyin.

su

...

Faydalı bir bilgi oldu. Teşekkürler.


Aequitas

@alquirel, için teşekkür ederim, bir nokta fazlalık olmuş, ilk defa sabitleniyorum da, onun heyecanından olsa gerek :)
@gufabe, haklısın, sonuçta yönetici hakları olmadan yapılamayacak bir işlem bu. Başına eklemeyi yaptım, teşekkür ederim :)

Bu arada sudo işe yaramıyor bu komut ile. İlle de root olarak giriş yapmayı şart koşuyor.


Öfkelenmeyin.
           Hz. Muhammed (sav)

heartsmagic

sudo gücenmesin :)

dpkg -l | awk '/^rc/ {print $2}' | sudo xargs dpkg --purge
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Aequitas



Öfkelenmeyin.
           Hz. Muhammed (sav)

DoGuKaN

Bu iş Ubuntu Tweak isimli uygulama ile de yapılabiliyor. Acemi kullanıcıların gözünü korkutmayalım komutlarla :)

Aequitas

Hehe, eminim onlar da bir zaman gelecek, bunu merak edeceklerdir.

Peki burada şunu sorsam yersiz olur mu?
Bu komuttaki parametrelerin anlamları nedir?
Mesela "^" ne işe yarıyor?
"(" ile "{" arasında ne fark var?
Kesme işareti ile tırnak arasında ne fark var ('/^rc/ {print $2}' yerine "/^rc/ {print $2}" olsa mesela)
rc'den sonra "/" koymazsak onu klasör olarak algılamıyor mu ya da onu koymamızın başka bir amacı mı var?
Bir de sanırım "|" kendinden sonra gelen komutu sistem genelinde değil de sadece kendinden önceki komutun çıktısı içinde işletiyor.


Öfkelenmeyin.
           Hz. Muhammed (sav)

ironic

"^" bir düzenli ifade (regex) kuralı. Dillere göre düzenli ifadelerde değişiklikler olabiliyor. Burdaki anlamı  .. ile başlayan satırlar için işlem yapılacağını belirtir.
Burgulu parantezler {} awk dilinde karışıklıkları önlemek adına kod öbeklerini diğerlerinden ayırmaya yarıyor.
awk komutundaki /..../ kısım ise arama yapılacak metnin girildiği bloktur. /^rc/ ile awk dpkg çıktısından gelen verideki rc ile başlayan satırlar için işlem yapar.

"|" yani borulama (piping) ..  kendinden önceki komutun çıktısını bir sonraki komuta girdi olarak iletir.

Normal parantezler $(...) şeklinde kullanılır.  Parantez içindeki yapının komut olarak yorumlanacağını (yani çalıştırılacağını) belirtir.

Tek tırnak ile çift tırnak arasındaki en önemli fark ; tek tırnak içerisindeki komutlar bash tarafından çalıştırılmaz.


Çift tırnak içerisindeki komut çalışır.

echo "$(uname -r)"

Tek tırnak içerisinde çalışmaz.

echo '$(uname -r)'

awk ve sed gibi dillerin kendilerine özel değişkenleri var. Bunlardan bazıları bash ın kendi kullandıkları ile de ortak. Örneğin $0 bash yorumlamasında çalıştırılan betiğin adıdır ama awk içinde tüm satırı ifade eder. Eğer bash ın yorumladığı işlemde awk ile $0 kullanacaksak awk komutunda tek tırnak kullanmak zorunludur ya da bash ile çakışacak değişkenleri tek tek  ters bölü işareti "\" ile işaretleyerek bash a özel bir değişken olarak yorumlamamasını bildirebiliriz.

Yukarıdaki örnekten devam edersek

  echo "\$(uname -r)"

normalde bash ın komut olarak algılaması gereken kısmı ters bölü kullanarak normal bir metin olarak yorumlamasını istedik.

Aequitas

@ironic, çok teşekkür ederim ayrıntılı açıklama için. Hakikaten kod işi ayrı bir dünya. İçimde yazılım hep bir tutku olmuştur ama hiç fırsat bulamadım, belli mi olur ileride bir gün bu tutkumu hayata geçiririm. Ama şimdilik bu işin bana gerçekten oldukça uzak olduğunu bir kez daha anladım. Tekrar teşekkür ederim. :)


Öfkelenmeyin.
           Hz. Muhammed (sav)

bilonemsi

uzak durun bağımlılık yapıyor...

http://www.qutuphane.com/

Turbo-DieseL

Package 2 listed more than once, only processing once.
Package 2 listed more than once, only processing once.
Package 2 listed more than once, only processing once.
Package 2 listed more than once, only processing once.
Package 2 listed more than once, only processing once.
Package 2 listed more than once, only processing once.
Package 2 listed more than once, only processing once.
.
.
.
.
.
dpkg: warning: ingoring request to remove 2 wich isn't installed.

dedi. Şimdi oldumu ne oldu çözemedim. ?
Samsung N150 (Intel® Atom™ Processor N450
(512K Cache, 1.66 GHz) 1 gb 667 Mhz OEM Ram, OEM 160 gb 5400 Rpm Hdd. HTC One V  Android 4.2 Jelly Bean.

guopx

Çıktı neden böyle bilmiyorum ama ayar dosyalarını silmenin bir diğer yolu ise Synaptic'i açın sol altta "Durum" butonuna tıklayın sonra eğer sol üstte "Kurulu olmayan (yarım kalmış yapılandırma)" diye bir satır çıkarsa tıklayıp yanda listelenen yarım yapılandırmaları "tamamen kaldırma için işaretle" ile kaldırın. Eğer çıkmazsa yarım yapılandırma yoktur zaten.
Sevdiklerine sevdiğini söyle çok geç olmadan.

Turbo-DieseL

Samsung N150 (Intel® Atom™ Processor N450
(512K Cache, 1.66 GHz) 1 gb 667 Mhz OEM Ram, OEM 160 gb 5400 Rpm Hdd. HTC One V  Android 4.2 Jelly Bean.

Unicode


mustafabirol


meda

"BEDAVA Bedava yaşıyoruz, bedava;Hava bedava, bulut bedava;
Dere tepe bedava;Yağmur çamur bedava;Otomobillerin dışı,Sinemaların kapısı,Camekanlar bedava; Peynir ekmek değil ama Acı su bedava;Kelle fiyatına hürriyet, Esirlik bedava; Bedava yaşıyoruz, bedava. Orhan VELİ"

friendship

Ögrenmek amaciyla bakmazsaniz ögrenemezsiniz.

feritarslan

                CloneZilla

neynefes

@feritarslan yaramayan kısım neresi ise bir başlık açın ve yaptığınız işlemleri oraya aktarın. Bakalım hiçbiri işe yaramıyor mu?

meda

Aequitas bu komutların Arch için olanı var mı ? Ya da bilen :)

Debian tabanlı dağıtımlarda işe yarıyor. :)
"BEDAVA Bedava yaşıyoruz, bedava;Hava bedava, bulut bedava;
Dere tepe bedava;Yağmur çamur bedava;Otomobillerin dışı,Sinemaların kapısı,Camekanlar bedava; Peynir ekmek değil ama Acı su bedava;Kelle fiyatına hürriyet, Esirlik bedava; Bedava yaşıyoruz, bedava. Orhan VELİ"

heartsmagic

Arch'ın, daha doğrusu Pacman'in böyle bir yapısı var mı? Yani dpkg'de olduğu gibi belirli yerlerde yapılandırma dosyaları tutuyor mu? .pacsave ve .pacnew gibi dosyalar var ama onların amacı biraz daha farklı sanki.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

if

/var/lib/pacman/local dizini altında her bir kurulu pakete ait bir dizin bulunur ve bu dizinde o pakete ait >tree
.
├── desc
├── files
└── mtree


dosyaları bulunur. desc içinde paketin adı, sürümü, tanımı, bağımlılıkları vs. gibi bilgiler; files içinde yüklenen dosyalar ve kurum zamanı ve md5 değeri vs. bulunur. Bu bilgileri kullanarak paket ve ilgili dosyalar kullanılan kaldırma seçeneğine bağlı olarak kaldırılıyor.

Sadece -R kullanılırsa meselâ /etc altındaki ayar dosyası/dosyaları kaldırılmaz, .pacsave olarak kaydedilir. Yine .log dosyaları kaldırılmaz. Bunun haricinde uygulamanın kendine has oluşturduğu dosyalar kaldırılmaz. Bu durumda pacman'in yapabileceği bir şey yok. Bu[1] ve bunun[2] gibi önerileri denemelisiniz.

-Rn ile foo paketine ait hemen hemen ne var ne yoksa - /etc dizini altındaki ayar dosyaları da dahil - kaldırır fakat uygulamaların ya da kullanıcıların uygulamaya ait ev dizininde oluşturduğu ayar dosyalarına dokunmaz.

/var/cache/pacman/pkg dizininde de kurulan paketler yer alır. -Sc ile bu dizin altındaki paketler silinir. -Scc ile hem bu dizindeki paketler hem de kullanımayan depolar kaldırılır.

man pacman
https://wiki.archlinux.org/index.php/Pacman

[1] https://aur.archlinux.org/packages/lostfiles/
[2] https://wiki.archlinux.org/index.php/Pacman_tips#Identify_files_not_owned_by_any_package

feritarslan

                CloneZilla

if