更新型多巴胺

更新型多巴胺

我执行了以下命令:

$ sudo apt-get install ssh-import-id

输出是(正如评论中人们要求提供的完整内容):

$ sudo apt-get install ssh-import-id
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  gdbserver gstreamer1.0-gtk3 libabw-0.1-1 libatkmm-1.6-1v5 libbabeltrace1 libc6-dbg libcairomm-1.0-1v5 libcdr-0.1-1
  libcolamd2 libdw1 libe-book-0.1-1 libepubgen-0.1-1 libetonyek-0.1-1 libfreehand-0.1-1 libglibmm-2.4-1v5 libgtkmm-2.4-1v5
  libilmbase12 libmspub-0.1-1 libmwaw-0.3-3 libnuma1 libodfgen-0.1-1 libopenexr22 libpangomm-1.4-1v5 libsuitesparseconfig5
  libvisio-0.1-1 libwpd-0.10-10 libwpg-0.3-3 libwps-0.4-4 libxss1 libxvmc1 lp-solve vim-common x11-apps x11-session-utils
  xbitmaps xinit xserver-xorg-video-amdgpu-hwe-18.04 xserver-xorg-video-ati-hwe-18.04 xserver-xorg-video-fbdev-hwe-18.04
  xserver-xorg-video-intel-hwe-18.04 xserver-xorg-video-nouveau-hwe-18.04 xserver-xorg-video-qxl-hwe-18.04
  xserver-xorg-video-radeon-hwe-18.04 xserver-xorg-video-vesa-hwe-18.04 xxd
Use 'sudo apt autoremove' to remove them.
Recommended packages:
  openssh-server
The following packages will be REMOVED:
  brltty firefox gdb google-chrome-stable gparted irqbalance libcc1-0 libglu1-mesa libllvm6.0 libmagickcore-6.q16-3-extra
  libpagemaker-0.0-0 libproxy1-plugin-gsettings libreoffice-avmedia-backend-gstreamer libreoffice-base-core libreoffice-calc
  libreoffice-draw libreoffice-gnome libreoffice-gtk3 libreoffice-help-en-us libreoffice-impress libreoffice-math
  libreoffice-ogltrans libreoffice-writer libxatracker2 lshw printer-driver-brlaser printer-driver-splix thermald
  ubuntu-desktop ubuntu-minimal ubuntu-standard vim-tiny xorg xserver-xorg-video-all-hwe-18.04
  xserver-xorg-video-vmware-hwe-18.04 zeitgeist-core
The following NEW packages will be installed:
  ssh-import-id
0 upgraded, 1 newly installed, 36 to remove and 0 not upgraded.
Need to get 10,4 kB of archives.
After this operation, 595 MB disk space will be freed.
Do you want to continue? [Y/n] Y
Get:1 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 ssh-import-id all 5.7-0ubuntu1 [10,4 kB]
Fetched 10,4 kB in 1s (14,5 kB/s)                      
(Reading database ... 127288 files and directories currently installed.)
Removing brltty (5.5-4ubuntu2.0.1) ...
Removing firefox (68.0.1+build1-0ubuntu0.18.04.1) ...
Removing gdb (8.1-0ubuntu3) ...
Removing google-chrome-stable (76.0.3809.100-1) ...
Removing gparted (0.30.0-3ubuntu1) ...
Removing irqbalance (1.3.0-0.1ubuntu0.18.04.1) ...
Removing libcc1-0:amd64 (8.3.0-6ubuntu1~18.04.1) ...
Removing ubuntu-desktop (1.417.3) ...
Removing xorg (1:7.7+19ubuntu7.1) ...
Removing libglu1-mesa:amd64 (9.0.0-2.1build1) ...
Removing xserver-xorg-video-all-hwe-18.04 (1:7.7+19ubuntu8~18.04.2) ...
Removing xserver-xorg-video-vmware-hwe-18.04 (1:13.3.0-2build1~18.04.1) ...
Removing libxatracker2:amd64 (19.0.2-1ubuntu1.1~18.04.2) ...
Removing libllvm6.0:amd64 (1:6.0-1ubuntu2) ...
Removing libmagickcore-6.q16-3-extra:amd64 (8:6.9.7.4+dfsg-16ubuntu6.7) ...
Removing libreoffice-ogltrans (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-impress (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-draw (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libpagemaker-0.0-0:amd64 (0.0.4-1) ...
Removing libproxy1-plugin-gsettings:amd64 (0.4.15-1) ...
Removing libreoffice-avmedia-backend-gstreamer (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-help-en-us (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-writer (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-calc (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-base-core (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-gnome (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-gtk3 (1:6.0.7-0ubuntu0.18.04.8) ...
Removing libreoffice-math (1:6.0.7-0ubuntu0.18.04.8) ...
Removing ubuntu-standard (1.417.3) ...
Removing lshw (02.18-0.1ubuntu6.18.04.1) ...
Removing printer-driver-brlaser (4-1) ...
Removing printer-driver-splix (2.0.0+svn315-6fakesync1) ...
Removing thermald (1.7.0-5ubuntu2) ...
Removing ubuntu-minimal (1.417.3) ...
Removing vim-tiny (2:8.0.1453-1ubuntu1.1) ...
Removing zeitgeist-core (1.0-0.1ubuntu1) ...
Selecting previously unselected package ssh-import-id.
(Reading database ... 126362 files and directories currently installed.)
Preparing to unpack .../ssh-import-id_5.7-0ubuntu1_all.deb ...
Unpacking ssh-import-id (5.7-0ubuntu1) ...
Processing triggers for mime-support (3.60ubuntu1) ...
Processing triggers for libreoffice-common (1:6.0.7-0ubuntu0.18.04.8) ...
Processing triggers for desktop-file-utils (0.23-1ubuntu3.18.04.2) ...
Processing triggers for cups (2.2.7-1ubuntu2.6) ...
Updating PPD files for cups-filters ...
Updating PPD files for foomatic-db-compressed-ppds ...
Updating PPD files for openprinting-ppds ...
Updating PPD files for c2esp ...
Updating PPD files for foo2zjs-common ...
Updating PPD files for gutenprint ...
Updating PPD files for hpcups ...
Updating PPD files for m2300w ...
Updating PPD files for postscript-hp ...
Updating PPD files for ptouch ...
Updating PPD files for pxljr ...
Updating PPD files for sag-gdi ...
Processing triggers for libc-bin (2.27-3ubuntu1) ...
Processing triggers for man-db (2.8.3-2ubuntu0.1) ...
Processing triggers for gnome-menus (3.13.3-11ubuntu1.1) ...
Processing triggers for dbus (1.12.2-1ubuntu1.1) ...
Processing triggers for hicolor-icon-theme (0.17-2) ...
Setting up ssh-import-id (5.7-0ubuntu1) ...

之后,我的 Firefox 被删除了,尽管在上述操作期间它正在运行。好吧,我看到一些软件包将被删除,但根本无法想象 Firefox 也在其中。

所以问题是:

  1. 为什么名为的命令install即将删除某些内容?
  2. 为什么apt-get决定不再需要 Firefox?
  3. 如何使用apt-get才能使其不会自动删除我需要且不想删除的应用程序和包?
  4. 我可以在哪里阅读与此问题相关的主题?

更新型多巴胺

Firefox 被删除了。它仍然在运行,但在我关闭它之后,我无法再次启动它,因为它不再存在于我的应用程序中。然后我重新安装了它(通过 Ubuntu 软件应用程序),并且需要从头开始调整它,因为我以前的设置都没有保留。

正如评论中所问:

$ apt-cache policy firefox
firefox:
  Installed: (none)
  Candidate: 59.0.2+build1-0ubuntu1
  Version table:
     68.0.1+build1-0ubuntu0.18.04.1 -1
        100 /var/lib/dpkg/status
     59.0.2+build1-0ubuntu1 500
        500 http://us.archive.ubuntu.com/ubuntu bionic/main amd64 Packages

哦,不!似乎 VI 也被删除了:

$ sudo vi /etc/apt/sources.list
sudo: vi: command not found
$ which vi
<nothing>

它在讨论的操作之前起作用。

可能重复

建议可能重复如何恢复默认存储库?无法回答此处提出的问题。但它有助于消除所讨论问题的根本原因。在“更新”选项卡中启用“重要安全更新”和“推荐更新”后,软件包安装问题不再存在。

结论

mook765 完全回答了这个问题。

答案1

apt在使用或安装软件包之前apt-get,您应该确保软件包缓存是最新的并且系统已升级。

sudo apt update    
sudo apt upgrade
sudo apt install <package-name>

apt管理deb软件包和软件包的依赖项。这意味着如果您安装了一个依赖于其他软件包的软件包,apt它将处理该软件包并安装依赖项。

有些软件包不能同时共存(安装)在系统中,它们互相冲突。apt也会处理这种情况,如果你安装包1包1与……相冲突包2安装在您的系统中,apt将删除包2以便能够安装包1

如果涉及到依赖关系,情况就会变得相当复杂,如果要删除已安装软件包的依赖关系,则依赖软件包也将被删除。如果系统和软件包缓存不是最新的,或者您向或添加了第三方存储库 (PPA),则由于版本冲突,这种情况很/etc/sources.list容易发生/etc/sources.list.d/

apt总是会告诉您将要发生什么,因此对于您来说,您只需要仔细阅读:

The following packages will be REMOVED:
  brltty firefox gdb ...

并且您可以通过键入N并点击来中止操作Enter。因此,请花时间仔细阅读命令输出,如果出现问题,您将浪费更多时间进行故障排除。

当我install ssh-import-id在我的系统(18.04.3)上安装时,它不会删除软件包:

~$ sudo apt install ssh-import-id
正在读取软件包列表...完成
构建依赖关系树       
正在读取状态信息...完成
将会安装以下附加软件包:
  ncurses-term openssh 服务器 openssh-sftp 服务器
建议的软件包:
  molly-guard monkeysphere rssh ssh-askpass
将会安装以下新软件包:
  ncurses-term openssh 服务器 openssh-sftp 服务器 ssh-import-id
升级了 0 个,新安装了 4 个,删除了 0 个,并且未升级 0 个。
需要获取 637 kB 的档案。
此操作后,将使用5,316 kB的额外磁盘空间。
您想继续吗?[Y/n] n
中止。

因此,您的系统要么不是最新的,要么对存储库进行了更改,我们无法从您提供的输出中看出来。

这些软件包apt告诉您它们不再需要,您应该删除它们,它们sudo apt autoremove是上一个操作留下的,您之前从系统中删除了其他软件包,但留下了一些软件包。

更新:

由于您最近提供了完整的命令输出,我建议您在执行任何其他操作之前重新安装已被删除的 36 个软件包,其中有一些必需的软件包,如果您在重新安装它们之前关机,最终可能会导致系统损坏。

答案2

为什么名为 install 的命令即将删除某些内容?

冗长的删除操作看起来像是之前未完成(错误、中止等)的软件包管理器操作的遗留问题。Apt 会记住您告诉它要做的事情,并将在下一个会话期间继续尝试完成它。任何 apt 操作都会触发重试,包括告诉 apt 安装不相关的软件包。

为什么 apt-get 决定不再需要 Firefox?

这取决于之前的 apt 会话,我们对此一无所知。您可以在 /var/log/apt/history.log 中看到您告诉 apt 执行的操作。您(或无人值守升级)可能尝试运行自动移除. 有很多可能性。

如何使用 apt-get 使其不会自动删除我需要且不想删除的应用程序和包?

Apt 不是通灵者,也不知道你的意图。它是一种工具,就像锯子或锤子一样。将智慧带入包管理是人类的角色。

幸运的是这并不难:

  1. 读取输出在同意 apt 建议的操作之前。这就是开发人员将continue?提示放在那里的原因。

  2. 正确使用 apt-marking. Apt 会跟踪您明确地告诉它安装哪些 (“手动”),哪些只是作为依赖项拖进来 (“自动”)。Apt惯于自动删除所有“手动”软件包。您必须明确告知 apt 删除“手动”软件包。

Ubuntu 的桌面安装程序使用 apt-marking 来防止基础系统的大规模自动删除,通过在安装过程中将所有基础系统包 apt 标记为“手动”。

由于 ubuntu-desktop、ubuntu-minimal 和 ubuntu-standard 元包均符合自动删除的条件,您可能使用 Netboot 映像(或一些类似的最小映像)来构建系统,从而绕过了额外的保护层。

你可以使用 查看“手册”包apt-mark showmanual。这些是你的顶级包 - 系统中的所有其他包依靠在这些顶级项目之一上。删除一个项目后,所有不再需要的依赖孤立包都将自动被删除。

这种大规模删除偶尔会发生在非熟练用户进行最小安装时。好吧,这种情况只发生一次,然后用户会对其关键软件包进行 apt-mark 以防止再次发生。


下面是大规模自动删除如何发生的示例(并且,根据许多 AskUbuntu 故事,已经发生在一些人身上):

  1. 用户使用 Netboot 映像安装系统。
  2. 用户安装ubuntu-desktop元软件包。这是现在唯一的“手动”软件包。所有基础系统软件包和桌面环境堆栈都是此单独软件包的“自动”依赖项。
  3. 用户尝试消除他们不使用的桌面应用程序之一(例如 Shotwell)。Apt 拒绝,因为shotwell它是 的依赖项ubuntu-desktop。这会让用户感到困惑,因为他们无法理解其中的关系。
  4. 在尝试各种网站上的不良建议时,用户删除了和shotwellubuntu-desktop整个桌面堆栈和基础系统仍然存在,但现在孤儿并且符合自动删除条件。不再有任何“手动”软件包锚定桌面软件包。但系统仍可运行。
  5. 有一天,用户了解了“孤儿”,决定尝试这个巧妙的新“自动删除”命令来删除膨胀......并迅速将整个系统卸载回最小图像。

答案3

作为初学者,你唯一的错误就是没有读懂即将发生的事情。否则,一切都会按预期发生。如果系统仍可启动,你可以重新安装软件包;如果系统无法启动,你可以重新安装系统。下次再读。

下一步是理解apt-mark命令,你不必理解,因为它并不总是有帮助,但建议这样做。它不会有帮助的时候是新事物还会引入依赖项,如果它们不能,那么它们就会中断。但是,如果它们能,那么一些其他事情已经存在于您系统中的程序将会被破坏。您可能不想失去它。

在那里,你必须做比你想象的更多的工作,即找到人(称为软件包维护者)并提醒他们事情进展如何。也就是说,“走在最前沿”。这对他们来说可能和对你一样烦人。也许,他们甚至会让你加入他们,你可以自己修复问题(不太可能,但有可能),因为他们可能有其他工作,并自愿构建这个。因此,如果你已经看到了解决方案,就没有时间尽快修复它。

否则,享受这个东西是免费的!

相关内容