`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 пакеты, поэтому я позволил ему это сделать.
Наконец, произошло следующее:
При перезапуске X не запускается. Попытка FailsafeX сказала, что
/usr/bin/X
не существует. Следуя его предложениям, я сделал:$ cd /usr/bin; ln -s Xorg X
При перезапуске X работает нормально, и все в порядке.
Когда я делаю что-то с
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
параметры для того, чтобы "исправить" пакет.