Чому видалення льодяника Nuke GNOME?


19

У мене є тестування старішого Debian 7 VM. Я намагаюся зменшити розмір площі VM, оскільки мені вже не вистачає місця. Мені хотілося видалити Iceweasel, оскільки я його не використовую, і зазвичай можу обходитися wget. Коли я побіг, Aptмені сказали, що він також видаляє GNOME:

$ sudo apt-get remove iceweasel*
...

The following packages were automatically installed and are no longer required:
  hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils
  xinit xorg
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  icedove iceowl-extension
Suggested packages:
  apparmor calendar-google-provider
The following packages will be REMOVED:
  gnome gnome-core iceweasel task-gnome-desktop
The following NEW packages will be installed:
  icedove iceowl-extension
0 upgraded, 2 newly installed, 4 to remove and 0 not upgraded.
Need to get 44.7 MB of archives.
After this operation, 100 MB of additional disk space will be used.
...

Чому видалення льодяника Nuke GNOME?


Після того, як зняли Iceweasel, а потім зробили autocleanта autoremoveпропустили, це було представлено. Я досить впевнений, що цей ВМ видається марним.

The following packages will be REMOVED:
  aisleriot ant ant-optional argyll at-spi2-core baobab browser-plugin-gnash
  ca-certificates-java caribou caribou-antler cheese dconf-tools default-jre
  default-jre-headless empathy empathy-common espeak-data file-roller finger
  fonts-cantarell fonts-opensymbol fonts-sil-gentium fonts-sil-gentium-basic
  gcalctool gdebi gdm3 gedit gedit-common gedit-plugins gir1.2-atspi-2.0
  gir1.2-gdata-0.0 gir1.2-gnomekeyring-1.0 gir1.2-goa-1.0 gir1.2-gtop-2.0
  gir1.2-gucharmap-2.90 gir1.2-javascriptcoregtk-3.0 gir1.2-rb-3.0
  gir1.2-tracker-0.14 gir1.2-webkit-3.0 gir1.2-wnck-3.0 glchess glines gnash
  gnash-common gnect gnibbles gnobots2 gnome-backgrounds gnome-color-manager
  gnome-dictionary gnome-disk-utility gnome-documents gnome-font-viewer
  gnome-games gnome-games-data gnome-games-extra-data gnome-icon-theme-extras
  gnome-mag gnome-nettool gnome-orca gnome-packagekit gnome-packagekit-data
  gnome-screenshot gnome-shell-extensions gnome-sudoku gnome-system-log
  gnome-tweak-tool gnome-video-effects gnomine gnotravex gnotski gnuchess
  gnuchess-book grilo-plugins-0.1 gtali gucharmap guile-2.0-libs
  hamster-applet hyphen-en-us iagno icedtea-6-jre-cacao icedtea-6-jre-jamvm
  icedtea-netx icedtea-netx-common inkscape iputils-tracepath java-common
  libapache-pom-java libatk-adaptor libatk-adaptor-data libatk-bridge2.0-0
  libatk-wrapper-java libatk-wrapper-java-jni libatspi1.0-0 libatspi2.0-0
  libavahi-gobject0 libavahi-ui-gtk3-0 libblas3gf
  libboost-program-options1.49.0 libboost-thread1.49.0 libcaribou-gtk-module
  libcaribou-gtk3-module libcmis-0.2-0 libcolamd2.7.1 libcolorblind0
  libcommons-beanutils-java libcommons-collections3-java
  libcommons-compress-java libcommons-digester-java libcommons-logging-java
  libcommons-parent-java libdb-java libdb-je-java libdb5.1-java
  libdb5.1-java-jni libdee-1.0-4 libdiscid0 libdmapsharing-3.0-2 libdotconf1.0
  libespeak1 libexttextcat-data libexttextcat0 libfs6 libgail-common
  libgdict-1.0-6 libgdict-common libgdu-gtk0 libgeocode-glib0 libgexiv2-1
  libgnome-mag2 libgpod-common libgpod4 libgraphite2-2.0.0 libgrilo-0.1-0
  libgtk-vnc-2.0-0 libgupnp-av-1.0-2 libgupnp-dlna-1.0-2 libgvnc-1.0-0
  libhsqldb-java libhyphen0 libicc2 libicu4j-java libimdi0 libjaxp1.3-java
  libjline-java libjtidy-java liblinear-tools liblinear1 liblouis-data
  liblouis2 liblucene2-java libmagick++5 libminiupnpc5 libmtp-common
  libmtp-runtime libmtp9 libmythes-1.2-0 libnatpmp1 libplot2c2 libpstoedit0c2a
  libraw5 libregexp-java libreoffice libreoffice-base libreoffice-base-core
  libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw
  libreoffice-emailmerge libreoffice-evolution libreoffice-filter-binfilter
  libreoffice-filter-mobiledev libreoffice-gnome libreoffice-gtk
  libreoffice-help-en-us libreoffice-impress libreoffice-java-common
  libreoffice-math libreoffice-report-builder-bin libreoffice-style-galaxy
  libreoffice-style-tango libreoffice-writer librhythmbox-core6 libsctp1
  libservlet2.5-java libsofia-sip-ua-glib3 libsofia-sip-ua0 libsonic0
  libspeechd2 libstlport4.6ldbl libsvm-tools libtelepathy-farstream2
  libunique-3.0-0 libvisio-0.0-0 libwnck-common libwnck22 libwpd-0.9-9
  libwpg-0.2-2 libwps-0.2-2 libxalan2-java libxerces2-java
  libxml-commons-external-java libxml-commons-resolver1.1-java libxss1
  libxz-java lightsoff lksctp-tools lp-solve mahjongg media-player-info
  minissdpd mobile-broadband-provider-info mythes-en-us network-manager-gnome
  nmap openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openjdk-7-jre
  openjdk-7-jre-headless p7zip-full perlmagick pstoedit python-brlapi
  python-louis python-mako python-markupsafe python-pyatspi python-pyatspi2
  python-speechd python-uno python-wnck python-zeitgeist quadrapassel rdesktop
  rhythmbox rhythmbox-data rhythmbox-plugin-cdrecorder rhythmbox-plugins rygel
  rygel-playbin rygel-preferences rygel-tracker seahorse shotwell
  shotwell-common simple-scan sound-juicer sound-theme-freedesktop
  speech-dispatcher swell-foop task-desktop telepathy-gabble telepathy-idle
  telepathy-logger telepathy-rakia telepathy-salut transmission-common
  transmission-gtk ttf-liberation ttf-sil-gentium-basic tzdata-java uno-libs3
  unoconv ure vinagre vino x11-apps x11-session-utils x11-xfs-utils xbrlapi
  xdg-user-dirs-gtk xfonts-mathml xinit xorg xul-ext-adblock-plus
  zeitgeist-core
0 upgraded, 0 newly installed, 278 to remove and 0 not upgraded.

Дивіться на askubuntu.com/questions/5636/… команди, які допоможуть вам у цьому.
phk

Дякую PHK Aptпідказує мені залежності. Мені цікаво знати, чому існують залежності. Я сумніваюся aptitude, підкаже, чому існує залежність.

1
Ну добре, але якщо, наприклад, це була пряма залежність, скажімо debian-desktop(я знаю, що це Debian, а не Ubuntu, а просто заради аргументу) серед інших браузерів, то це скаже вам, що хтось подумав, що веб-браузер є важливим для графічний робочий стіл.
phk

(і хитрість у цьому випадку полягає в тому, що вам потрібно спуститися на один шар, вибрати залежності завдання-gnome-desktop, якого ви насправді хочете, та apt-markті, як встановлено вручну перед тим, як видалити task-gnome-desktop). Якщо ви деякий час використовуєте debian, можливо, це дивно, тому що debian спочатку не використовував ці єдині метапакети для реалізації своїх "завдань".
sourcejedi

1
Можливо, це тому, що *? Я знищив свого гнома apt-get remove wine*раніше.
Ріо6

Відповіді:


23

Як пояснили інші, метапакети для настільних комп'ютерів (як-от task-desktopабо gnome-core- - зараз) встановлюють веб-браузер (ну, насправді, досить давно). Ви можете розраховувати gnome-coreвстановити Epiphany або хоча б дозволити його як альтернативу Iceweasel, але це не з міркувань безпеки . В gnome-coreописі згадується залежність браузера:

Це основні компоненти середовища GNOME Desktop, інтуїтивно зрозумілий та привабливий робочий стіл.

Цей мета-пакет залежить від базового набору програм, включаючи файловий менеджер, програму перегляду зображень, веб-браузер, відеоплеєр та інші інструменти.

Він містить офіційні «основні» модулі робочого столу GNOME.

Тож причини, від яких залежить Iceweasel, є двома:

  • визначається як залежно від веб-браузера;
  • єдиний розумний браузер, на якому можна залежати на робочому столі GNOME, - Iceweasel, оскільки Epiphany не має достатньої підтримки безпеки, а Chromium не інтегрується належним чином у робочий стіл.

Раніше існувала альтернативна залежність від gnome-www-browser, але це було знято в 2011 році (без пояснень, наскільки я можу сказати). Можливо, варто попросити технічне обслуговування повторно представити його, але це не допоможе вам встановити gnome-coreбез браузера.

Механізми, які призводять до видалення GNOME, якщо ви виймаєте Iceweasel, відносно прості. Коли ви попросите apt-getщось зробити, це дуже важко зробити, тому видалення пакету видаляє все, що залежить від нього (після того, як вас запитають ). gnome-coreзалежить iceweasel, і gnomeзалежить gnome-core, так

apt-get remove iceweasel

також видаляє gnome-coreі gnome.

Видалення цих метапакетів призводить до того, що всі пакунки, від яких вони залежать, стають кандидатами на видалення autoremove, оскільки система упаковки тепер вважає їх непотрібними (жоден пакунок, позначений як не встановлений автоматично, не залежить від них). Система упаковки вважає, що користувач дійсно хоче тих пакетів, які позначені як явно встановлені, а все інше встановлюється лише для підтримки цих пакетів. Тож якщо що-небудь видалить, gnomeабо gnome-coreнаступного разу, коли ви запустите apt-get autoremove, він вважатиме, що багато встановлених пакетів непотрібні ...

Є кілька способів вирішення:

  • якщо ви хочете продовжувати gnome-coreвстановлювати без Iceweasel, використовуйте equivsабо apt-holepunch(останній набагато простіше використовувати в цьому випадку, дякую Джошуа !), щоб скласти підроблений iceweaselпакет і встановити його разом з gnome-core;
  • пройти через всі пакети , які gnomeі gnome-coreзалежать, вирішити , які з них ви хочете використовувати і / або необхідності ( наприклад gdm3 , gnome-session, nautilus...), і відзначте їх з допомогою

    apt-mark manual ...
    

    або за допомогою aptitudeGUI '(що буде набагато простіше).

У будь-якому випадку ви не можете зламати свій VM, видаляючи пакунки, якщо ви не почнете видаляти основні пакунки (і apt-getголосно скаржитеся, перш ніж це зробити), або ядро. Можливо, вам доведеться увійти до текстової консолі, але ви можете виправити речі звідти так само, як і через емулятор терміналу X.


Чудова відповідь! Просто цікаво, про що тоді gnome-www-browser"віртуальний" пакет?
phk

2
@phk Це відмінний питання, альтернативна залежність gnome-www-browserбула видалена в 2011 році , але він по - , як і раніше забезпечується Chromium, Epiphany, Iceweasel і Firefox ... (і корицею до сих пір використовує його.)
Стівен Кітт

1
До речі, тут є що - то , що робить роботу за виключення пакета від залежності без нарощування окр залежить від equivs: mail-archive.com/debian-bugs-dist@lists.debian.org/msg900702 / ...
Joshua

Дякую Стівен. Я не маю на увазі ділити волоски, біт, чому це залежність? Щодо "це визначено як залежно від веб-браузера" , я не можу зрозуміти, чому існує така залежність. Це справді моє запитання. Вибачте за непорозуміння.

Також ви маєте рацію щодо "... ви не можете зламати свій VM, видаливши [ці конкретні] пакети" . Після перезавантаження у мене з’явився екран для входу без GUI, і я зміг SSH у поле. Я задоволений терміналом / командним рядком, тому його явно не зламаний або марний. Іншим, однак, може знадобитися робочий стіл. Я б не хотів, щоб моя мати чи батько намагалися користуватися машиною.

2

Завдання вибираються під час встановлення ( tasksel), і окремого завдання для "веб-браузера" немає ... Теоретично це може бути настільно, як у дні KDE3. Люди очікують, що на робочому столі за замовчуванням буде включений веб-браузер, якщо нічого іншого, щоб отримати допомогу в їх новій системі :). Тому завдання робочого столу включає веб-браузер за замовчуванням, QED.

За винятком наших запитань, запитання є помилковими. task-gnome-desktop не потребує льодохід. Це лише рекомендує.

(Відповідь, яка найбільше обґрунтовується, вказує, що існує непряма взаємозв'язок, яка цього вимагає. Зважаючи на це, може бути місце для вдосконалення цієї структури залежності. Я думаю, що наступне все ще справедливо.)

Ви пропустили щось дуже важливе.

Наступні пакети були автоматично встановлені і більше не потрібні: hyphen-en-us libfs6 task-desktop

Виявляється (після вилучення льодовика?) У вас не було встановлено жодних пакунків, від яких залежали або рекомендувались task-desktop. Він також не був позначений як встановлений вручну. Тож звичайно apt-get autoremoveприбирає.

Знак питання, оскільки, дивлячись на базу даних пакетів Debian, я не бачу, як залежить або рекомендує льодохід task-desktop. Можливо, це вже було автоматично видалено.

Будьте обережні, використовуючи автоматичне видалення. Якщо автоматично видалити, ваш увесь робочий стіл вважається непотрібним, скасуйте його та позначте робочий стіл як встановлений вручну ( apt-mark).

ВМ не марний; ви можете увійти в консоль і запустити apt-get install task-gnome-desktop. Якщо ви не хочете рекомендованого пакетаяк льодяник, ви можете спробувати використовувати apt-get install task-gnome-desktop iceweasel-.

Відмітити рекомендовані залежності також можна за допомогою synaptic(GUI) або aptitude(TUI). (Зверніть увагу, що придатність автоматично видаляється за замовчуванням, тоді як у синаптичному є список не потрібних пакетів, які ви можете десь знайти). На жаль, синаптик IME може бути досить незграбним і млявим в даний час, якщо ви намагаєтеся робити такі речі. Дивіться /ubuntu/622031/how-do-i-exclude-specific-packages-from-installation-with-apt-get


2

Ви дійсно не повинні використовувати * regexes для видалення речей - і я це знаю з досвіду. Використання * видаляє кожен пакет із назвою, що містить "iceweasel". Якщо ви хочете видалити льодохід, видаліть пакет льодовика (без зірочки) та видаліть вміст папки льодовика. Я поняття не маю, що таке "крижаний" пакет, це може бути будь-яка зворотна залежність hyphen-en-us libfs6 task-desktop x11-apps x11-session-utils x11-xfs-utils xinit xorg. Будь-який із них. Швидкий огляд і автоматичне переміщення xorg/ x11поодинці дозволить зламати 99% графічних інтерфейсів * Nix. Щоб дізнатися, які видалені пакети з морозива ви шукаєте, grep iceweasel /var/log/apt/history.logі шукайте рядки, починаючи з "Remove:"розділу Commandline: apt-get remove iceweasel* Якщо ви все ще цікаво розміщуєте результати, і я (або хтось інший) можу з’ясувати точні проблеми залежності. :)

Таке питання залежності, як це, є нелогічним, і його існування є помилкою з боку людей, які створили метадані для вашого .deb. Я хотів би з'ясувати точну проблему, перш ніж подавати звіт про помилку. Звідси моя відповідь вище. : D


Дякую трудгеманку. Мене більше цікавить, чому існує залежність; не те, чим є залежність.

Він не повинен існувати. Його існування є помилкою з боку людей, які створили метадані для вашого .deb, які не є ідеальними. Є наслідки, які вони не передбачають.
trudgemank

Ви, мабуть, видалили пакет "iceweasel", який не є частиною метапакету "iceweasel". Можливо, один встановлений за замовчуванням.
trudgemank

Trudgemank - Якщо ви відповісте на запитання, яке я задав у вашій відповіді, а не в коментарях, то я би радий прийняти відповідь. Для повноти ось відповідь, яку я вважаю правильною: "... [це] є помилкою з боку людей, які створили метадані для вашого .deb" . Вибачте за роздвоєні волоски; це насправді було предметом, який цікавив мене. Маючи інформацію в руці, я можу подати звіт про помилку.

Це добре, поки я допоміг мені не потрібно офіційного підтвердження. Але ви не маєте особливих проблем із залежністю, ви дійсно повинні, якщо хочете подати звіт про помилку.
trudgemank
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.