この apt-get のやり取りは私を困惑させます (64 ビット CPU の場合)。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
コマンドを実行すると、次の出力が表示されます。
$ sudo apt-get install libgirepository-1.0-1:i386
Following packages have been installed and are no longer necessary:
app-install-data-partner cdrdao fonts-lao fonts-thai-tlwg fonts-tlwg-garuda
fonts-tlwg-kinnari fonts-tlwg-loma fonts-tlwg-mono fonts-tlwg-norasi
fonts-tlwg-purisa fonts-tlwg-sawasdee fonts-tlwg-typewriter
fonts-tlwg-typist fonts-tlwg-typo fonts-tlwg-umpush fonts-tlwg-waree
foomatic-db-compressed-ppds gir1.2-dbusmenu-glib-0.4
gir1.2-javascriptcoregtk-3.0 gnome-icon-theme gnome-icon-theme-symbolic
gstreamer1.0-clutter humanity-icon-theme indicator-application kdesudo
kubuntu-notification-helper libao-common libao4 libappindicator1
libappindicator3-1 libcairo-script-interpreter2 libcairo2-dev
libclutter-1.0-0 libclutter-1.0-common libclutter-gst-2.0-0
libclutter-gtk-1.0-0 libcogl-common libcogl-pango15 libcogl15
libdbusmenu-gtk3-4 libfontconfig1-dev libfreetype6-dev libgmime-2.6-0
libharfbuzz-dev libharfbuzz-gobject0 libindicator3-7 libindicator7
libjson-glib-1.0-0 libjson-glib-1.0-common libnautilus-extension1a
libpeas-common libperl4-corelibs-perl libpixman-1-dev libpng12-dev
libtotem-plparser18 libxcb-shm0-dev libxcomposite-dev libxft-dev
libzeitgeist-2.0-0 printer-driver-min12xxw python-defer python3-pykde4
syslinux-legacy ubuntu-extras-keyring ubuntu-release-upgrader-qt
x11proto-composite-dev
...
Following packages will be REMOVED:
aptdaemon apturl-kde gir1.2-atk-1.0 gir1.2-dee-1.0 gir1.2-freedesktop
gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gst-plugins-base-0.10
gir1.2-gstreamer-0.10 gir1.2-gtk-2.0 gir1.2-gtk-3.0 gir1.2-pango-1.0
gir1.2-peas-1.0 gir1.2-soup-2.4 gir1.2-totem-1.0 gir1.2-totem-plparser-1.0
gir1.2-udisks-2.0 gir1.2-unity-5.0 gir1.2-vte-2.90 gir1.2-webkit-3.0
kubuntu-desktop libatk1.0-dev libgdk-pixbuf2.0-dev libgirepository-1.0-1
libgtk2.0-dev libgtkglext1-dev libmuonprivate2 libpango1.0-dev
libpangox-1.0-dev libpeas-1.0-0 libtotem0 muon muon-discover muon-notifier
muon-updater python-appindicator python-aptdaemon
python-aptdaemon.gtk3widgets python-gi python-gi-cairo python-gobject
python-gst0.10 python-indicate python3-aptdaemon
python3-aptdaemon.gtk3widgets python3-gi software-properties-common
software-properties-gtk software-properties-kde totem totem-mozilla
totem-plugins ubuntu-release-upgrader-gtk update-manager update-notifier
usb-creator-common
Following NEW packages will be installed:
libgirepository-1.0-1:i386
質問は2つあります。
- なぜ apt-get はこれほど多くのパッケージを削除する必要があると考えるのでしょうか? totem を削除するように指示したわけではありません。
- 次回、
apt-get
上記のような非常に奇妙な状況が発生したとき、apt-get がなぜこのように奇妙に動作するのかを自分で調べるにはどうすればよいでしょうか?
答え1
まず、これは奇妙な行動ではなく、完全に正しい行動であり、あなたは何らかの形でこの行動を求めているということを知っておく必要があります。
では、なぜこのようなことが起こるのでしょうか?
をインストールしたいのですlibgirepository-1.0-1:i386
が、すでに
libgirepository-1.0-1
64 ビット バージョンがインストールされているため、ここでシステムは 64 ビットをこの 32 ビットに置き換えるように要求しています。
この置き換えにはいくつかの結果が伴います。置き換えを選択した場合、システムはlibgirepository-1.0-1
32 ビットを削除して代わりにインストールします。このライブラリ パッケージが削除されると、システムはそれに依存する他のアプリケーションも削除します。このライブラリが削除されると、それらのアプリケーションは使用できなくなるためです。
例えば、トーテムが削除される理由として、トーテムの依存関係を見てみましょう。
$ apt-cache rdepends totem
totem
Reverse Depends:
totem:i386
totem:i386
libtotem0:i386
libtotem-dev:i386
gnome-settings-daemon:i386
totem-plugins-extra
ubuntu-desktop
totem-plugins
totem-mozilla
totem-dbg
totem
|nautilus
libtotem0
libtotem-dev
gnome-settings-daemon
totem:i386
totem:i386
libtotem0:i386
libtotem-dev:i386
gnome-settings-daemon:i386
ubuntustudio-desktop
ubuntu-sugar-remix
|tunapie
totem-plugins-extra
totem-plugins-dvb-daemon
totem-plugin-arte
totem-plugin-arte
streamtuner2
remuco-totem
gnome-core
ezgo-multimedia
bombono-dvd
ubuntu-desktop
totem-plugins
totem-mozilla
totem-dbg
totem
|nautilus
libtotem0
libtotem-dev
gnome-settings-daemon
上で見たように、totem はlibtotem0
と他の多くのパッケージに依存していますが、このパッケージを例に挙げると、 の依存関係を確認すると、 と他の多くのパッケージも表示されますlibgirepository-1.0-1
。libtotem0
例を説明すると、 を削除して 32 ビットをインストールする場合、を削除してその 32 ビットをインストールし、32 ビットとの互換性を確保するlibgirepository-1.0-1
必要があります。また、totem を削除することになります (意図していなくても)。libtotem0
libgirepository-1.0-1
物事が明らかになることを願う