`apt-get` предлагает мне удалить`xinit`, как мне с этим бороться?

Я только что обновил 32-разрядную версию Ubuntu 12.04 до 64-разрядной версии, выполнив следующие действия:

  • Сделал тарбол из моего дома (не очень важно)
  • Сохраненный dpkg --get-selections
  • Сделал тарбол из /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 понять, что система зависит от них?

2 ответа

Решение

Как правильно предположил Муру, ubuntu-desktop каким-то образом был удален. Похоже, каким-то образом мне удалось заменить X на Wayland (возможно).

Установка ubuntu-desktop жаловался на сломанные пакеты xserver-xorg а также xorg, Устанавливая их, ubuntu-desktop был установлен в порядке (и /usr/bin/X Вад заменил). Апт все еще сказал, что некоторые путевые пакеты больше не нужны, что я просто autoremoveд.

В следующий раз вы можете выполнить следующие шаги (которые немного чрезмерны), но используются в случаях, когда пакеты становятся раздражающими:

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 параметры для того, чтобы "исправить" пакет.

Другие вопросы по тегам