`apt-get` 建议我删除 `xinit`,我该如何处理?

`apt-get` 建议我删除 `xinit`,我该如何处理?

我刚刚通过以下步骤将我的 32 位 Ubuntu 12.04 更新为 64 位版本:

  • 制作了我家的 tarball(不是很重要)
  • 已保存dpkg --get-selections
  • 制作了一个 tarball/etc/apt
  • 格式化并安装最新的 64 位 Ubuntu 12.04
  • 用旧主页覆盖主页(同样,这并不重要)
  • 覆盖/etc/apt

并重新安装旧的应用程序,我尝试了以下操作这里, 所以我做了:

$ sudo apt-get install dselect
$ sudo dpkg --set-selections < ~/Package.list
$ sudo apt-get dselect-upgrade

但是,这要求我删除很多 64 位软件包并安装 32 位版本。我不太清楚如何重置选择,所以我直接卸载了dselect

然后我决定采用更手动的方法。有了旧dpkg --get-selections输出(调用文件packages),我执行以下操作:

# take packages marked as deinstall
$ awk '/deinstall/{ print $1 }' < packages > deinstall
# and remove them
$ while read p; do sudo apt-get remove "$p" -y; done < deinstall

被删除的软件包没有什么奇怪的。事实上,它们是:

appmenu-gtk
appmenu-gtk3
asymptote
indicator-appmenu
libfltk-cairo1.3
libfltk-gl1.3
libgc1c2
libgsl0ldbl
liboverlay-scrollbar-0.2-0
liboverlay-scrollbar3-0.2-0
libsigsegv2
libubuntuoneui-3.0-1

然后我做了同样的事情来安装旧的包(这里我意识到apt-get install每个包调用都太慢了,所以我把它们一起做了):

# take packages marked as install
$ awk '/\tinstall/{ print $1 }' < packagespackages > install
# and install them
$ xargs sudo apt-get install -y < install

但是,在执行此操作之前,我删除了以 X 开头的软件包,以确保它不会对 X 执行任何操作。

这样做时,它仍然告诉我一些与 X 相关的软件包将被删除,但同时它说一些其他与 X 相关的软件包将被安装,所以我让它这样做。

最后发生的事情如下:

  1. 重启后,X 没有运行。尝试 FailsafeX 时提示/usr/bin/X不存在。按照它的建议,我做了:

    $ cd /usr/bin; ln -s Xorg X
    
  2. 重新启动后,X 运行正常,一切正常。

  3. 当我用 做某事时apt-get,它告诉我:

    The following packages were automatically installed and are no longer required:
      x11-apps libwayland-ltss-server0 xserver-xorg-input-vmmouse
      x11-session-utils appmenu-qt xserver-xorg-input-evdev x11-xfs-utils
      libxrandr-ltss2 xserver-xorg-input-wacom xinit xserver-xorg-input-mouse
      libxcb-xfixes0 libwayland-ltss-client0 xserver-xorg-input-synaptics
      libllvm3.3
    

所以这是我的问题。我应该删除这些软件包吗?我如何确保我有替代软件包,以便重新启动时一切正常?如果我不应该删除这些软件包,我如何让 apt 理解系统依赖于它们?

答案1

正如 muru 正确指出的那样,ubuntu-desktop不知何故被卸载了。看来我不知何故设法用 wayland 替换了 X(也许)。

安装时ubuntu-desktop抱怨软件包损坏xserver-xorgxorg。安装它们时,ubuntu-desktop安装正常(并且/usr/bin/Xwad 被替换)。Apt 仍然说一些 wayland 软件包不再需要,我刚刚autoremove这样做了。

答案2

下次出现问题时,您可以执行以下步骤(这有点过分),但适用于软件包变得令人烦恼的情况:

sudo apt-get check
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove
sudo dpkg --configure -a
sudo apt-get -f install

这样,所有软件包就都正确了。在最坏的情况下,你需要调用dkpg它的权限--force-remove-reinstreq--force-overwrite参数来“修复”软件包。

相关内容