Только сегодня попробовал сделать sudo apt-get dist-upgrade
и пришел к такому состоянию:
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
phablet-tools ubuntu-sdk
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Хорошо, ubuntu-sdk
было отложено/отложено, вероятно, есть новые пакеты для установки из-за зависимостей; поэтому я пробую dist-upgrade
:
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
intltool
The following packages have been kept back:
ubuntu-sdk
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 52.0 kB of archives.
After this operation, 245 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://dk.archive.ubuntu.com/ubuntu/ trusty/main intltool all 0.50.2-2 [52.0 kB]
Fetched 52.0 kB in 0s (872 kB/s)
Selecting previously unselected package intltool.
(Reading database ... 343935 files and directories currently installed.)
Preparing to unpack .../intltool_0.50.2-2_all.deb ...
Unpacking intltool (0.50.2-2) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up intltool (0.50.2-2) ...
Хм... так что только что intltool
установили, не так ли ubuntu-sdk
? Давайте попробуем еще раз:
$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
phablet-tools ubuntu-sdk
0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Хммм... dist-upgrade
опять?
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
ubuntu-sdk
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Все еще сдерживаемся... Давайте попробуем приложить немного больше усилий sudo apt-get install...
:
$ sudo apt-get install phablet-tools ubuntu-sdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ubuntu-sdk : Depends: ubuntu-device-flash but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Давайте тогда попробуем ubuntu-device-flash
:
$ sudo apt-get install ubuntu-device-flash
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ubuntu-device-flash : Depends: click-ubuntu-policy but it is not installable
Depends: ubuntu-snappy-cli but it is not installable
E: Unable to correct problems, you have held broken packages.
Давайте просто попробуем click-ubuntu-policy
, хотя сейчас у меня нет больших надежд:
$ sudo apt-get install click-ubuntu-policy
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package click-ubuntu-policy is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'click-ubuntu-policy' has no installation candidate
Отлично, судя по всему, click-ubuntu-policy
его больше нет в репозиториях, но у него все еще есть висящая зависимость в ubuntu-device-flash
package.
Какие действия я могу порекомендовать в этом случае?
решение1
Из apt-get
страницы руководства
dist-upgrade в дополнение к выполнению функции обновления также разумно обрабатывает изменяющиеся зависимости с новыми версиями пакетов; apt-get имеет "умную" систему разрешения конфликтов, и она попытается обновить наиболее важные пакеты за счет менее важных, если это необходимо. Поэтому команда dist-upgrade может удалить некоторые пакеты. Файл /etc/apt/sources.list содержит список мест, из которых можно получить нужные файлы пакетов
dist-upgrade
пытается установить новые пакеты для обновления (вопреки тому, что upgrade
делает), но он может сделать это только если пакеты найдены доступными в любом из мест, перечисленных в /etc/apt/sources.list
файле. Если в репозиториях отсутствует пакет, как он может его найти? И если он не может найти пакет, он не обновит его, а вместо этого задержит пакет.
Это то, что произошло в вашем случае. click-ubuntu-policy
Пакет недоступен (и никогда не был) в надежных официальных репозиториях (Проверьте здесь на packages.ubuntu.com). ubuntu-device-flash
не будет обновляться, поскольку его более новая версия зависит от click-ubuntu-policy
, который недоступен ни в одном из известных репозиториев apt
.
Однако, если вы добавите PPA или репозиторий исходного кода, который имеет click-ubuntu-policy
для trusty
, вы можете обновить ubuntu-device-flash
пакет. Но это не рекомендуется.
Мое предложение таково, поскольку Ubuntu включает в себя более новую версию ubuntu-device-flash
, я думаю, click-ubuntu-policy
что она тоже скоро будет доступна в репозитории.