Gönderen Konu: [Nasıl] Kaldırılmış paketlerin geride kalan ayar dosyalarını silme.  (Okunma sayısı 15897 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

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:
Kod: [Seç]
dpkg -l | awk '/^rc/ {print $2}'
Bu yapılandırma dosyalarını kaldırmak için ise şu kodu çalıştırıyoruz:
Kod: [Seç]
sudo su
dpkg -l | awk '/^rc/ {print $2}' | xargs dpkg --purge

Veya root ile giriş yapmadan:
Kod: [Seç]
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.. :)
« Son Düzenleme: 13 Ocak 2012 - 23:43:28 Gönderen: Aequitas »


Öfkelenmeyin.
           Hz. Muhammed (sav)

Kod: [Seç]
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?

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

Kod: [Seç]
dpkg: error: requested operation requires superuser privilege
alttaki komutu, ardından parolanızı girerek yeniden deneyin.

Kod: [Seç]
su
...

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

« Son Düzenleme: 13 Ocak 2012 - 23:34:05 Gönderen: gufabe »

@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.
« Son Düzenleme: 13 Ocak 2012 - 19:14:17 Gönderen: Aequitas »


Öfkelenmeyin.
           Hz. Muhammed (sav)

sudo gücenmesin :)

Kod: [Seç]
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.

Teşekkür ederim @heartsmagic, bunu da ekledim. :)


Öfkelenmeyin.
           Hz. Muhammed (sav)

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

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.
« Son Düzenleme: 14 Ocak 2012 - 01:00:13 Gönderen: Aequitas »


Öfkelenmeyin.
           Hz. Muhammed (sav)

"^" 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.

Kod: [Seç]
echo "$(uname -r)"
Tek tırnak içerisinde çalışmaz.

Kod: [Seç]
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

 
Kod: [Seç]
echo "\$(uname -r)"
 normalde bash ın komut olarak algılaması gereken kısmı ters bölü kullanarak normal bir metin olarak yorumlamasını istedik.

@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)

bilgi için cok teşekkürler
uzak durun bağımlılık yapıyor...

http://www.qutuphane.com/

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.

Çı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.

sorun çözüldü,teşekkürler.
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.

İşe yaradı tskrler 8)

faydalı bi konu. teşekkürler

Sizlerin sayesinde 4 yıldır öğrenmeye devam ediyorum.
"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İ"

Çok teşekkürler temizliğimizi yaptık.
Ögrenmek amaciyla bakmazsaniz ögrenemezsiniz.

kodların hiçbiri işe yaramıyor
                CloneZilla

@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?

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İ"

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.

/var/lib/pacman/local dizini altında her bir kurulu pakete ait bir dizin bulunur ve bu dizinde o pakete ait
Kod: [Seç]
>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.

Kod: [Seç]
man pacmanhttps://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
« Son Düzenleme: 09 Haziran 2015 - 11:26:44 Gönderen: if »

eywallah işe yaradı inşallah yanlış bişeler silmez =)
                CloneZilla

« Son Düzenleme: 10 Mart 2019 - 09:32:43 Gönderen: if »