Apt ile apt'yi kaldırabilir miyim?


45

apt-get remove <package>Bir programı kaldırmak için kullanabileceğimi biliyorum .

Ancak aptbir programın kendisidir. apt-get remove aptÇıkarmak için kullanabilir miyim , yoksa başından sonuna kadar karıştı mı?


2
Bu gerçek mi yoksa sadece varsayımsal bir soru mu? Durum 1: deneyin. Başka: Bileşenlerini çıkardıktan sonra herhangi bir parçasını çıkarmaya çalışmadığı takdirde kendini temizleyebilmesi gerektiğini düşünüyorum. Zaten açılan dosyalar sorunsuz bir şekilde kaldırılabilir.
Byte Commander

@ByteCommander Her ikisi de, ama şu anda gerçekten deneyemem.
Tim

13
Sen can ancak muhtemelen olmamalı . Linux nadiren kullanıcının neden kendini vurmak istediğini sorar , sadece iyi bir sebebin olduğunu varsayar ve tetiği
çekmeni

1
Tamamlanması için, Fedoras 'dnf bunu yapmanıza izin vermez. # dnf remove dnf Dependencies resolved. Error: The operation would result in removing the following protected packages: dnf.
Davidmh

Ne ilginç bir şeytani soru! Mantıklı bir takip: Bundan kurtulabilir misin, yoksa tam bir tekrar kurulum mu gerektiriyor?
KlaymenDK

Yanıtlar:


78

APT, seçeneği kullanarak komutlarınızı taklit etmenizi sağlar -s. Bunu kendiniz deneyebilir ve komutu verebilirsiniz apt-get -s remove apt(gerek yok sudo).

Bu, aşağıdaki çıktıyı verir:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  apturl-common xul-ext-ubufox
Use 'apt-get autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-properties-common software-properties-gtk ubuntu-desktop
  unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 9 to remove and 0 not upgraded.
Remv ubuntu-desktop [1.341]
Remv nautilus-share [0.7.3-1ubuntu5]
Remv apturl [0.5.2ubuntu9]
Remv software-properties-gtk [0.96.13.1]
Remv software-properties-common [0.96.13.1]
Remv python3-software-properties [0.96.13.1]
Remv unattended-upgrades [0.86.2ubuntu1]
Remv apt-utils [1.0.10.2ubuntu1]
Remv apt [1.0.10.2ubuntu1]

Yani cevap olmalı: evet, yapabilirsin.


8
Apt'ın simulasyon modunun bunun gibi bir şey için tam serpinti olduğundan emin değilim. Şüphesiz bu, kodun ele alabileceği veya vermeyebileceği son bir durum olacaktır.
Sparhawk,

12
Bu gerektirmez sudo( -smod herhangi bir değişiklik yapmaz), bu yüzden önlem alınmadan çalıştırılması daha iyi olur sudo.
Sahte İsim

3
Apt apt'nin nasıl kaldırılacağını iyi bir şekilde belirleyebilir. Ama aslında yapabilir mi? Kurulumu tutarsız bir durumda bırakarak, daha sonra dayandığı bir dosyayı silebileceğini hayal etmek kolaydır.
kullanıcı253751,

1
@ immibis dpkg kaldırmak için bu konuda daha fazla endişe ediyorum. Apt kendisi dpkg'a ne yapacağını söyler, dpkg aslında (un) kurulumlarını yapan şeydir.
Random832

1
Öyleyse apt
dpkg'a

30

Yapabilirsin...

sudo apt-get remove apt
Reading package lists... Done
Building dependency tree      
Reading state information... Done
The following packages will be REMOVED:
  apt apt-utils apturl nautilus-share python3-software-properties
  software-center software-properties-common software-properties-gtk
  ubuntu-desktop ubuntu-extras-keyring ubuntu-minimal unattended-upgrades
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 9,031 kB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
?] Yes, do as I say!
(Reading database ... 179817 files and directories currently installed.)
Removing ubuntu-desktop (1.327) ...
Removing nautilus-share (0.7.3-1ubuntu5) ...
Removing apturl (0.5.2ubuntu4) ...
dpkg: warning: while removing apturl, directory '/usr/lib/python3/dist-packages/AptUrl/gtk/backend' not empty so not removed
Removing software-properties-gtk (0.94) ...
dpkg: warning: while removing software-properties-gtk, directory '/usr/lib/python3/dist-packages/softwareproperties/gtk' not empty so not removed
Removing software-properties-common (0.94) ...
Removing python3-software-properties (0.94) ...
Removing unattended-upgrades (0.82.8) ...
Removing ubuntu-minimal (1.327) ...
Removing apt-utils (1.0.9.2ubuntu2) ...
Removing software-center (13.10-0ubuntu4.1) ...
Removing ubuntu-extras-keyring (2010.09.27) ...
OK
Removing apt (1.0.9.2ubuntu2) ...
Processing triggers for man-db (2.7.0.2-2) ...
Processing triggers for gconf2 (3.2.6-2ubuntu1) ...
Processing triggers for hicolor-icon-theme (0.13-1) ...
Processing triggers for shared-mime-info (1.2-0ubuntu3) ...
Processing triggers for gnome-menus (3.10.1-0ubuntu2) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu2) ...
Processing triggers for bamfdaemon (0.5.1+14.10.20140925-0ubuntu1) ...
Rebuilding /usr/share/applications/bamf-2.index...
Processing triggers for mime-support (3.55ubuntu1) ...
Processing triggers for dbus (1.8.8-1ubuntu2) ...
Processing triggers for libc-bin (2.19-10ubuntu2) ...

ve çok yıkıcı bir şeyler yapmak üzeresiniz. Söylemeliyim ki ... paketlerin listesi 6000kb'den az yer tasarrufu için korkunç görünüyor: D

Bitirir, ancak "apt-get" komutunu kullanmanın bir yolu yoktur. Ubuntu Yazılım Merkezi artık çalışmaz ve bir paket yöneticisini tekrar kurmak için "dpkg" kullanmanız gerekir (ve ayrıca tüm bağımlılıkları manuel olarak da kurmanız gerekir).


12
Bir paket yöneticisini tekrar kurmak için "dpkg" kullanmanız gerekir (ve ayrıca tüm bağımlılıkları manuel olarak da kurmanız gerekir) , yani başka bir deyişle,sudo apt-get remember-what-2002-was-like
user1717828

Eğer bir Live CD ile önyükleme olamazdı, o zaman chrootve apt-getArch yapar çok gibi?
Sparhawk,

1
@Sparhawk Neyi amaçladığınızdan emin değil; chroot yaptıktan sonra, normal sisteminizin kökünün içindesiniz ve kaldırdığınız apt-get orada kalacaksınız. Ben apt-get (ya da belki de dpkg) alternatif bir kök dizini belirlemeye izin veriyor, ancak bunu nasıl yapacağınızı çabucak bulamıyorum.
CVn

Çıkardığı paketlerin hiçbiri, elbette, kendisine uygun olmadıkça, özellikle "korkutucu" IMO değildir.
Random832

@ MichaelKjörling apt-getYeni "root" a yükleyerek manuel yolu çalıştırabileceğinizi düşünüyordum , ancak tüm config / cache dosyalarına da ihtiyacınız olacağını unuttum. Muhtemel öneriniz kesinlikle olsa daha temiz olurdu (eğer bu seçenek varsa).
Sparhawk

12

Bir zamanlar, CoreUbuntu'yu çalıştırdığımda, apteskiden kullanılmaya karar veren kaynaktan bir paket paketi kurdum apt. Bir dahaki sefere koştum apt autoremove, aslında kaldırılacak olan yazılım listesine bakmadı aptve listede vardı.

Ben daktilo benim sürpriz bir dahaki sefere düşünün apt install <package-name>ve var The program 'apt' is currently not installed. You can install it by typing: sudo apt-get install apt.

Neyse ki, bazı nedenlerden dolayı, autoremoveherhangi kaldırmadık apt'hepsi ben yapmak zorunda s bağımlılıkları wget apts' .debkullanarak arşiv ve yeniden yükleme dpkg -i.


Diğer yanıtlar gösterildiği gibi kaldırmak eğer apt ile apt bağımlılıkları bu kararlılığı çalışması nedeniyle, daha fazla sorun olacak.

Bunu ilginç buluyorum ama gerçekten de (kesinlikle Debian ve belki de Fedora / openSUSE için?) Pek çok modern dağıtımın büyük ölçüde kendi seçtikleri paket yöneticisi tarafından sağlanan altyapıya göre tanımlanması ve inşa edilmesi söz konusudur.


5
İddiaya girerim aptbağımlılıkları kaldırmamış olmanın sebebi , yüklediğiniz buggy paketinin onları gerektiği gibi listelemesidir. Bu paketin bir yedek olarak yapılıp yapılmadığını anlamlıdır.
Dmitry Grigoryev

5

Teknik olarak, apt apt'leri kaldıramaz ... çünkü apt paketleri nasıl kaldıracağını, kuracağını veya yükselteceğini bilmiyor. Paketleri kurma, kaldırma, yükseltme, yapılandırma görevleri dpkg'ye bırakılmıştır. "Apt" adlı paketi kaldırmaya apt diyebilirseniz de, apt paketinin ters bağımlılıklarını kontrol eder, bu paketleri not edin ve dpkg 'ı kaldırmak için sipariş edin. Diğer cevaplarda da ne görülebilir .

Hatta apt olmadan bunu olan bağımlılıkları ve gerektiğinde yükseltmeleri izlemek için daha acı verir sadece, yüklemek, kaldırmak veya paketleri yükseltmek için dpkg kullanabilirsiniz varlık nedenidir apt ait.


Evet, apt gerçekten sadece daha basit bir önyüz için dpkgve eğer kaldırırsanız dpkgo zaman artık gerçekten Ubuntu mu?
kedi

@ Cat sanırım hala ... paketi temizlemeyeceğin veya /var/lib/dpkg/statusdosyayı çıkarmayacağın sürece olacak . İsterseniz dpkg'yi kurtarabilirsiniz.
Braiam

1

Tabi ki yapabilirsin. Apt ve dpkg kendileri paketlerdir ve kendileri aracılığıyla güncellenebilecekleri içindir, bu yüzden kaldırılması için hükümler vardır; Aksi takdirde /var/lib/dpkg/info/dpkg.prermve /var/lib/dpkg/info/dpkg.postrmvar olmak için bir neden olmazdı :)

Onları yanlışlıkla dpkg'sız bırakacak şekilde çıkardıysanız, aynı zamanda binutils, tar, gzip / bzip2'den kurtulmadığınız sürece dpkg için .deb arşivini manuel olarak açabilirsiniz.

--purgeapt alet zincirine dahil olan herhangi bir paket üzerinde size kötü problemler verebilir; Belli dosyaların içinde nelerin olduğunu söylemek zor /var/lib/dpkg. /var/lib/dpkg/statusSilinen ve mevcut bir yedekleme olmadıysa , evet, paket yöneticisi bu sistemde onarılamayacaktı.


-1

Yemin ederim , uzun zaman önce Ubuntu tabanlı bir sistemde bulunan aptikili dosyaları gördüm /usr/local/bin, fakat şu anki Ubuntu MATE 15.04 sistemimde yoklar ( /usr/bindiğer ikili dosyaların çoğundalar). O olsaydı /usr/local/bino zaman muhtemelen bunu kaldırmak mümkün olmazdı aptdosyaları çünkü /usr/local/binpaket yöneticisi tarafından göz ardı edilmesi gerekiyor. Kabul etmeliyim ki apt(ve dpkgaynı zamanda) altına /usr/local/binalmak iyi bir fikir.

Daha ilginç bir soru - kaldırırsanız ne olur dpkg? Yeterince, dpkgbir paket olarak listeleniyor apt, ancak şimdi kaldırmayı deneyemeyeceğim (şu anda kurulmuş bir sanal makine yok). Teorik olarak bir de dpkgkendisi ile kaldırabilir . Yeniden kurmanın tek yolunun bunu elle yapmak olacağı konusunda eğitimli bir tahminde bulunacağım, daha sonra mevcut yapılandırma dosyalarını toplayacağını umuyorum (bu nedenle sistemi yeniden baştan elle anlatmanıza gerek yok. hangi paketlerin yüklü olduğunu) ve ardından paketin dpkgşimdi yeniden yüklendiğini söyleyin .


(Bir şaka :) Bir Debian kullanıcının eşdeğer # rm -rf /olduğunu # apt-get purge ".*".


Resmi bir dağıtım paketinden gelen herhangi bir şey / usr / local / bin içinde bitiyorsa, bu pakete karşı bir hata gönderin.
rackandboneman

Mesele şu ki bir paketten gelmiyordu; "apt-get remove apt" ve "apt-get remove dpkg" sorunlarından kaçınmak amacıyla paket yöneticisinden ayrı olarak kuruldu. Aslında benim ana sistemim olarak kullandığım Linux Mint olduğunu düşünüyorum.
Micheal Johnson,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.