Я только что обновил свою 32-разрядную версию Ubuntu 12.04 до 64-разрядной версии, выполнив следующие действия:
dpkg --get-selections
/etc/apt
/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 понять, что система зависит от них?
Как muru правильно предложенный, ubuntu-desktop
так или иначе стал удаленным. Это похоже так или иначе, что мне удалось заменить X Уэйлендом (возможно).
Установка ubuntu-desktop
жаловалась на поврежденные пакеты xserver-xorg
и xorg
. Установка их, ubuntu-desktop
была установлена хорошо (и /usr/bin/X
замененный комок). Склонный все еще сказал, что некоторые пакеты Уэйленда больше не необходимы, который я всего autoremove
d.
Вы могли сделать следующие шаги в следующий раз, когда проблема появляется (Которые являются немного чрезмерными), но используются для случаев, где пакеты становятся раздражающими:
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
параметры для "зафиксированного" пакета.