Ubuntu
apt-get

[Ubuntu] apt-get まとめ

More than 1 year has passed since last update.


summary

コマンド
内容

apt-get install [package]
パッケージのインストール/更新

apt-get update
パッケージリストの更新

apt-get upgrade
インストールされてるパッケージの更新

apt-get dist-upgrade
インストールされてるカーネルの更新(Ubuntu)/ディストリビューションの更新(Debian)

dpkg -l [package]
インストールされてるパッケージの一覧

dpkg -L
インストールした時のファイルの一覧

apt-cache search [query]
パッケージの検索

apt-cache policy [query]
パッケージの検索 (インストール可能なバージョンの表示)

apt-cache madison [query]
パッケージの検索 (インストール可能なバージョンの一覧)

apt-get remove [package]
パッケージの削除

apt-get autoremove
使ってないパッケージの削除

apt-get purge [package]
パッケージの削除(設定ファイルも)

apt-get clean
アーカイブファイルの削除

apt-get autoclean
使ってないパッケージのアーカイブファイルの削除


# apt-get install [package]

パッケージのインストール用。

パッケージ指定して更新したい時にも使えます。バージョンを指定するには =バージョン をライブラリ名の後ろに付与。

使用例)

$ sudo apt-get install ntp ntpdate

Reading package lists... Done
Building dependency tree
Reading state information... Done
Use 'apt-get autoremove' to remove them.
Suggested packages:
ntp-doc
The following packages will be upgraded:
ntp
1 upgraded, 0 newly installed, 0 to remove and 93 not upgraded.
Need to get 613 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates/main ntp amd64 1:4.2.6.p3+dfsg-1ubuntu3.2 [613 kB]
Fetched 613 kB in 2s (242 kB/s)
(Reading database ... 93849 files and directories currently installed.)
Preparing to replace ntp 1:4.2.6.p3+dfsg-1ubuntu3.1 (using .../ntp_1%3a4.2.6.p3+dfsg-1ubuntu3.2_amd64.deb) ...
* Stopping NTP server ntpd
...done.
Unpacking replacement ntp ...
Processing triggers for ureadahead ...
Processing triggers for man-db ...
Setting up ntp (1:4.2.6.p3+dfsg-1ubuntu3.2) ...
* Starting NTP server ntpd
...done.
... (以下略)...


# apt-get update

パッケージを管理しているDBを更新して、最新の状態にする。パッケージの更新自体はしません。

参照する場所は /etc/apt/sources.list に記述。

こんな感じ↓

...

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ precise main
deb-src http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ precise main

## Major bug fix updates produced after the final release of the
## distribution.
deb http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates main
deb-src http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ precise-updates main
...

使用例)

$ sudo apt-get update

Get:1 http://security.ubuntu.com precise-security Release.gpg [198 B]
Get:2 http://security.ubuntu.com precise-security Release [53.0 kB]
Hit http://ap-northeast-1.ec2.archive.ubuntu.com precise Release.gpg
Get:3 http://ap-northeast-1.ec2.archive.ubuntu.com precise-updates Release.gpg [198 B]
Get:4 http://security.ubuntu.com precise-security/main Sources [124 kB]
Fetched 4,884 kB in 7s (622 kB/s)
Reading package lists... Done # DB更新して終了


# apt-get upgrade

インストールされているパッケージを全更新。

追加でパッケージのインストールが必要になった場合は更新処理を止めてくれる。

使用例)

$ sudo apt-get upgrade

Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.


# apt-get dist-upgrade

# apt-get 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:
linux-headers-3.2.0-75 linux-headers-3.2.0-75-virtual ...
The following packages will be upgraded:
apport apt-transport-https apt-utils bind9-host ...
73 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 106 MB of archives.
After this operation, 104 MB of additional disk space will be used.
Do you want to continue [Y/n]? # Y で更新開始


# dpkg -l [package]

apt-get ではないけど、インストール済のパッケージを表示する時に使う。

[package] を省略すると全パッケージを表示。

yum だと

# yum list installed

とかできるけど apt-get だとできないので不便。

使用例)

$ sudo dpkg -l

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
+++-================================-===================================-==============================================================================
ii accountsservice 0.6.15-2ubuntu9.7 query and manipulate user account information
ii acpid 1:2.0.10-1ubuntu3 Advanced Configuration and Power Interface event daemon
ii adduser 3.113ubuntu2 add and remove users and groups
...(以下略)...


# dpkg -L [package]

【追記】似てるけどちょっと違います。L です。

パッケージインストール時の、「ファイルの一覧」を表示します。

使用例)

$ dpkg -L nginx

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/nginx
/usr/share/doc/nginx/README.Debian
/usr/share/doc/nginx/copyright
/usr/share/doc/nginx/changelog.Debian.gz
/usr/share/doc/nginx/CHANGES.gz


# apt-cache search [query]

【追記】パッケージの検索用。

パッケージの名前と説明がクエリの検索対象となるようです。

使用例)

$ sudo apt-cache search snoopy 

libphp-snoopy - Snoopy is a PHP class that simulates a web browser
snoopy - execve() wrapper and logger


# apt-cache policy [query] / apt-cache madison [query]

【追記】 Ansible や Chef 使って使用パッケージのバージョン管理していると、特定のパッケージが使用できなくなることがたまにあります。

インストール可能なパッケージのバージョンを知りたい時に使えるコマンド。

使用例)

$ sudo apt-cache policy nginx

nginx:
Installed: (none)
Candidate: 1.4.6-1ubuntu3.5
Version table:
1.4.6-1ubuntu3.5 0
500 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
1.4.6-1ubuntu3 0
500 http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages

$ sudo apt-cache madison nginx
nginx | 1.4.6-1ubuntu3.5 | http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty-updates/main amd64 Packages
nginx | 1.4.6-1ubuntu3.5 | http://security.ubuntu.com/ubuntu/ trusty-security/main amd64 Packages
nginx | 1.4.6-1ubuntu3 | http://ap-northeast-1.ec2.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
...


# apt-get remove [package]

指定したパッケージの削除。


# apt-get autoremove

使ってないパッケージを見つけて削除。

使用例)

$ sudo apt-get autoremove

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
mecab-utils
0 upgraded, 0 newly installed, 1 to remove and 53 not upgraded.
After this operation, 79.3 MB disk space will be freed.
Do you want to continue [Y/n]? Y
...(以下略)...


# apt-get purge [package]

【追記】指定したパッケージの削除。 remove だと設定ファイルが残るが、 purge はそちらも削除。


# apt-get clean

パッケージをインストールするために拾ってきたアーカイブファイル( *.tar.gz とか)を削除


# apt-get autoclean

使ってないパッケージのアーカイブファイルを削除

使用例)

$ sudo apt-get autoclean

Reading package lists... Done
Building dependency tree
Reading state information... Done