今日やろうとした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
パッケージにはまだ依存関係が残っています。
この場合、どのような対処法が推奨されますか?
答え1
apt-get
manページより
dist-upgrade はアップグレード機能を実行するだけでなく、パッケージの新しいバージョンとの依存関係の変更もインテリジェントに処理します。apt-get には「スマート」な競合解決システムがあり、必要に応じて、重要度の低いパッケージを犠牲にして最も重要なパッケージをアップグレードしようとします。そのため、dist-upgrade コマンドは一部のパッケージを削除する場合があります。/etc/apt/sources.list ファイルには、必要なパッケージ ファイルを取得する場所のリストが含まれています。
dist-upgrade
アップグレードするために新しいパッケージをインストールしようとしますが (do とは反対にupgrade
)、そのパッケージが/etc/apt/sources.list
ファイルにリストされている場所のいずれかで利用可能であることがわかった場合にのみインストールできます。リポジトリにパッケージがない場合、どうやって見つけるのでしょうか。パッケージが見つからない場合は、アップグレードされず、パッケージが保留されます。
これがあなたのケースで起こったことです。click-ubuntu-policy
パッケージは信頼できる公式リポジトリでは利用できません(そして、これまでも利用できませんでした)。ここpackages.ubuntu.comで確認してください) は、 の新しいバージョンが に依存しており、 の既知のリポジトリでは が利用できないubuntu-device-flash
ため、アップグレードされません。click-ubuntu-policy
apt
click-ubuntu-policy
ただし、のPPA またはリポジトリ ソースを追加するとtrusty
、パッケージをアップグレードできますubuntu-device-flash
。ただし、これはお勧めしません。
私の提案としては、Ubuntu には の新しいバージョンが含まれているので、リポジトリでもすぐに利用できるようになるのではないかubuntu-device-flash
と思います。click-ubuntu-policy