apt-get install komutunu geri almak mümkün mü?

62

Carpadio'yu Xubuntu yüklememe yükledim (Live USB), daha sonra 50 paketin üzerinde, sanırım, deponun Ubuntu tarafındaki gibi. Şimdi bunu geri almak istiyorum. Ancak tüm avlarım için Sadece apt-get purge öneren sudo apt get install komutunu nasıl tersine çevirebilirim . Bu işe yaramaz çünkü 2 paket (carpadio ve carpadio-gnomepanel) kaldırmaktır.

/var/log/apt/history.log , bu komutla birlikte yüklenen tüm paketlerin bir listesini içerir. Yani hepsini temizlemenin kolay bir yolu olup olmadığını merak ediyordum ? Else sadece yeniden yükleyebilirim, bu zaten yeni bir kurulumdu, ama merak ediyorum.

Geçmiş kayıtlarının küçük bir örneği (tüm listenin 1 / 5-1 / 10'u)

  

Komut satırı: apt-get install cardapio-gnomepanel
  Kurulum: libdbusmenu-qt2: amd64 (0.9.2-0ubuntu1, otomatik), python-packagekit: amd64 (0.7.2-4ubuntu3, otomatik), bardak-pk-yardımcı: amd64 (0.2.1.2-1ubuntu0.1, otomatik) , geoclue: amd64 (0.12.0-1ubuntu12, otomatik), birlik: amd64 (5.18.0-0ubuntu1, otomatik), gösterge yazıcıları: amd64 (0.1.6-0ubuntu1, otomatik), libevolution: amd64 (3.2.3- 0ubuntu6, otomatik), libqt4-declarative: amd64 (4.8.1-0ubuntu4.3, otomatik), libmtp9: amd64 (1.1.3-1ubuntu0.1, otomatik), izleyici-madenci-fs: amd64 (0.14.0-2ubuntu1 , otomatik), gir1.2-rb-3.0: amd64 (2.96-0ubuntu4.2, otomatik), python-aptdaemon.pkcompat: amd64 (0.43 + bzr805-0ubuntu7, otomatik), gnome-media: amd64 (3.4.0- 0ubuntu3.1, otomatik), metacity: amd64 (2.34.1-1ubuntu11, otomatik), nautilus: amd64 (3.4.2-0ubuntu6, otomatik), libcompizconfig0: amd64 (0.9.7.0 ~ bzr428-0ubuntu6, otomatik), compiz- plugins-default: amd64 (0.9.7.12-0ubuntu1, otomatik), libunistring0: amd64 (0.9.3-5, otomatik), libebackend-1.2-1: amd64 (3.2.3-0ubuntu7, otomatik), ubuntu-docs: amd64 (12.04.6, otomatik), python-mako: amd64 (0.5.0-1, otomatik),

autoremove öneren herkese: Neden olduğundan emin değilim, ama sadece "python-keybinder veya başka bir şey" ile ilgili başka bir paket ("python-keybinder ya da bir şey") aldım ve bu otorite kaldırmayı başardı.

Yükleme ve kaldırma arasında yalnızca büyük değişiklik xubuntu-restricted-extras yükleniyordu.

    
sordu Karthik T 25.01.2013 18:03

9 cevap

71

Temel olarak, apt-get remove 'sinin kurulumunu geri almak için paketi% ve paketi apt-get autoremove çalıştırmanız gerekecek. / p>

Tüm sürece bakalım:

  • package-one 50 bağımlılık yükler ve "otomatik" olarak işaretlenir. Ayrıca, sorgunuzdaki günlük alıntılarından da görülebilir

  • sudo apt-get install package-one sadece bir tane kaldırır (temizler), ancak şunu çalıştırın

    Takip eden tüm yükleme eylemleri (eğer varsa), artık gerekli olmayan paketlere sahip bir bilgilendirme mesajı verecektir:

    The following packages were automatically installed and are no longer required:
      package-two package-three [...]
    Use 'apt-get autoremove' to remove them.
    

    Bu liste temel olarak, yalnızca "otomatik" olarak işaretlenmiş tüm paketlerin, tersine bağımlılık içermeyen bir listesidir. Diğer bir deyişle, paket yönetimi söz konusu olduğunda, bunların yüklenmesinin bir nedeni yoktur.

    Not: Kurulum gerekli değildir! Bu sadece APT'nin gereksiz paketlerinizden bahsetmek için akıllı olduğunu göstermektir!

  • sudo apt-get purge package-one bunları kaldırır (temizler)

Daha fazla bilgi

  • sudo apt-get autoremove --purge manpage adresinden autoremove resmi dokümantasyon:

      

    apt-get(8) , diğer paketlerin bağımlılıklarını karşılamak için otomatik olarak yüklenen ve artık gerekli olmayan paketleri kaldırmak için kullanılır.

  • Doğru yol nedir? bir uygulamayı tamamen kaldırmak?

verilen cevap gertvdijk 25.01.2013 18:13
18

O anda kurulu bir paketi ve bağımlılıklarını kaldırmak istediğinizde şunları kullanmalısınız:

sudo apt-get purge package
sudo apt-get --purge autoremove

Ancak apt eylemini geri almak için apt-undo komut dosyasını kullanabilirsiniz. Ubuntu'da gerçekleştirilen apt eylemlerini geri alabilen basit bir betiktir. Bu betiğin, yalnızca paketlerinizi yüklemek / yükseltmek / kaldırmak / temizlemek / düşürmek için apt-get yerine kullanırsanız çalışabilirsiniz.

Ubuntu'da apt-undo yüklemek için, terminalde aşağıdaki komutları çalıştırın:

sudo add-apt-repository ppa:lkjoel/apt-undo
sudo apt-get update
sudo apt-get install apt-undo

kullanımı:

apt-undo install yourpackages
apt-undo remove yourpackages
apt-undo purge yourpackages
apt-undo upgrade
apt-undo dist-upgrade
apt-undo install yourpackages=old.version
apt-undo install yourpackages=new.version

Geri almak için, yukarıdaki aptitude eylemleri, terminaldeki komutları izleyerek çalışır:

apt-undo undo
    
verilen cevap Ramin 25.01.2013 18:15
7

Unix'in gücünü kullanın. Sahip olduğunuz günlük dosyası satırını alın ve hangi uygunluğu geri alacak bir komut oluşturun. Örneğin:

$ echo 'Install: libdbusmenu-qt2:amd64 (0.9.2-0ubuntu1, automatic), python-packagekit:amd64 (0.7.2-4ubuntu3, automatic), cups-pk-helper:amd64 (0.2.1.2-1ubuntu0.1, automatic),'|perl -pe 's/ \(.*?\)//g; s/,//g; s/^Install: //'
libdbusmenu-qt2:amd64 python-packagekit:amd64 cups-pk-helper:amd64

Bu nedenle, günlük dosyasından uygun satırı verdiğinizde, yanlışlıkla yüklediğiniz tüm paketleri temizleyebilirsiniz:

$ dpkg -P $(echo '(full log line here)' | perl -pe 's/ \(.*?\)//g; s/,//g; s/^Install: //')

( perl yerine sed kullanmıştım çünkü sed , açgözlü olmayan eşleştirmeleri desteklemeyen bir normal ifade türünü kullanıyordu. Bu, ihtiyacım olanı yapmanın en kolay yolu)

    
verilen cevap Robie Basak 25.01.2013 18:46
1

Tek bir paketi kaldırdıktan sonra --purge, apt-get remove --purge <package> değerini ekleyerek iyice kaldırabilirsiniz. Bu, size çektiği kitaplık paketlerinin otomatik olarak yüklenip artık gerekli olmadığına dair bir ileti vermelidir. hangi noktayı kaldırmak için apt-get autoremove çalıştırabilirsiniz.

    
verilen cevap Ken Kinder 25.01.2013 18:12
1

sudo apt-get purge packagename değerini

ile takip edin
sudo apt-get autoremove. 

Metapackage olmadıkça, bununla ilgilenmelidir.

Ayrıca, adresindeki faq konusuna da bakın. Tüm Cardapio dosyalarını nasıl elimden çıkarabilirim? .

    
verilen cevap chaskes 25.01.2013 18:13
1
  1. İstenmeyen paketlerin uzun listesini apt log'undan new_file.txt 'ye yapıştırın
  2. perl -pe 's/\(.*?\)(, )?//g' /path/to/new_file.txt yürütme
  3. Son komutun çıktısını panoya kopyalayın veya ilk etapta oraya borulayın.
  4. sudo apt-get remove işlemini yürüt [buradaki panonun içeriğini yapıştırın]

Tamam.

Temel olarak, paket listesinin apt log'undan apt-get'in anlayabileceği bir şeye formatlanması gerekir. Parantez, aralarındaki kelimeler ve virgüllerin gitmesi gerekiyor, böylece perl oyuna giriyor. Evet, daha iyi (daha verimli) yollar var - ama bunu yaptım, anlaşılması kolay ve işe yarıyor.

    
verilen cevap Insperatus 02.02.2013 10:59
0

Bir ppa eklediyseniz ve geri dönmek istiyorsanız, aşağıda açıklanan adımları uygulamanız gerekir. Kaldırmak istemediğiniz diğer paketleri yüklediğinizde bunun başarısız olabileceğini anlayın. Eminim bu bir senaryo ile yapılabilir. Şahsen bunun bir takımın parçası olması gerektiğini düşünüyorum ve bağımlılık nedeniyle hangi paketlerin kurulu olduğu ve kullanıcının isteği ile kurulan daha iyi yönetim olmalıdır.

1) ppa /etc/apt/sources.list dosyasından kaldırın Ppa'yı eklediğiniz zamanı hatırla. Şanslıysan, kesin olmana gerek yok.

2) PPA'yı kurduğunuz andan itibaren yeniden yüklenecek bir liste yapın: cat /var/log/dpkg.log | grep 'yükseltme'

3) PPA'yı yüklediğiniz andan kaldırılacak bir liste oluşturun: cat /var/log/dpkg.log | grep 'yükle'

4) 3. adımdaki tüm paketleri kaldırın: sudo apt-get {adım 3'ten paketlerin listesi} kaldır

5) tüm paketleri 2. adımdan yeniden yükleyin: sudo apt-get install --reinstall {adım 2'deki paketlerin listesi}

6) Eğer işler ters giderse ve bir çözüm düşünemezseniz, PPA'yı geri alın ve tüm paketleri iki listeden yeniden yükleyin.

    
verilen cevap VincentSC 20.08.2013 18:24
0

Oldukça eski bir soru olduğunu biliyorum ama buraya yardım aramak için geldim ve belki birine yardım edebilirim. Ben unity8-desktop-session-mir yükledikten sonra @ Karthik-T'nin bir benzer bir durum vardı. Biliyorum büyük bir tane. Onunla 233 paket çekti.

autoremove kullanımı% 34'ünü kaldırıyorum. Bunun anlamı, unity8-desktop-session-mir yüklemesi sırasında iki paketin kaldırılmasıdır ( python3-aptdaemon.pkcompat ve evolution-data-server-online-accounts ). % Co_de% bölümünden sonra /var/log/apt/history.log olarak belirtilmiştir.

Unity 8 kurulumunu tamamen geri almak için aşağıdakileri verdim:

  1. Install
  2. sudo apt-get purge unity8-desktop-session-mir
  3. sudo apt-get --purge autoremove (Birlik 8 ile ilgili 8 paket kaldırıldı)
  4. sudo apt-get install python3-aptdaemon.pkcompat evolution-data-server-online-accounts

Bu, daha önce yüklediğiniz her şeyi kesinlikle kaldırmaz, ancak bazı durumlarda yeterince iyidir.

PS: ikinci adımda yeniden yayınlandığım için ikinci adımda sudo apt-get --purge autoremove gerekli değildir.

    
verilen cevap user536838 03.08.2016 12:47
0

Teknik olarak "kaldır" veya "otomatik geri al" işlemleri, çoğu kez işi yeterince iyi yapmak için yapılabilecek olsa da "geri almaz".

Varsayılan olarak, apt-get, -o APT::Suggests-Important=0 -o APT::Recommends-Important=0 değerini belirtmediğiniz sürece paketleri geride bırakacaktır

history.log apt dosyasına göz atmak ve kurulu tüm paketleri kaldırmak daha güvenilirdir. İşlemi kolaylaştırmak için küçük bir düğüm tabanlı bir betik oluşturdum:

İşte

Ayrıca, burada "geri alma" değişikliklerine yönelik daha manuel bir yaklaşım:

İşte

    
verilen cevap Rolf 12.05.2018 12:22

Etiketlerdeki diğer soruları oku