
を実行するとdpkg -l
、インストールされているパッケージのリストが表示され、それを再現しようとしている「モデル」システムと比較します。そのリストには、emacs23
削除したい など、いくつかのパッケージが表示されます。しかし、 を実行すると、パッケージがインストールされていないapt-get remove emacs23
というメッセージが表示されます。emacs23
# apt-get -y remove emacs23
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package emacs23 is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 97 not upgraded.
走ってもapt-get update
効果はなかった:
更新された情報:
# dpkg -l emacs23
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============-==============-============================================
rc emacs23 23.3+1-1ubuntu The GNU Emacs editor (with GTK+ user interfa
# apt-cache policy emacs23
emacs23:
Installed: (none)
Candidate: 23.3+1-1ubuntu9.2
Version table:
23.3+1-1ubuntu9.2 0
500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
100 /var/lib/dpkg/status
23.3+1-1ubuntu9.1 0
500 http://security.ubuntu.com/ubuntu/ precise-security/main amd64 Packages
23.3+1-1ubuntu9 0
500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
# dpkg -l | grep emacs23
rc emacs23 23.3+1-1ubuntu9.2 The GNU Emacs editor (with GTK+ user interface)
この明らかな混乱をどう解決すればよいでしょうか?
答え1
からman dpkg
:
-l, --list [package-name-pattern...]
List packages matching given pattern. If no package-name-pattern is given, list all packages in /var/lib/dpkg/status, excluding the
ones marked as not-installed (i.e. those which have been previously purged).
これは、dpkg-l
すべてのパージされていないパッケージ、およびない全てのインストール済みパッケージ;
実際、man dpkg-query
(dpkg -l
フロントエンドとして機能する)から:
Desired action:
u = Unknown
i = Install
h = Hold
r = Remove
p = Purge
Package status:
n = Not-installed
c = Config-files
H = Half-installed
U = Unpacked
F = Half-configured
W = Triggers-awaiting
t = Triggers-pending
i = Installed
つまり、rc
行の先頭は次のことを意味します。
r
: パッケージの望ましいアクションは「削除」です。c
: パッケージのステータス: 構成ファイルのみが存在します。
既存のシステムを再現したいので、rc
「モデル」システムに表示されない指定されたアクション/ステータスの組み合わせを持つパッケージは削除する必要があります。
sudo apt-get purge emacs23
副作用として、それらのパッケージはもう表示されなくなりますdpkg -l
。