Linuxゲリラ戦記

aptコマンドの使い方

左を向いているペンギンみたいなキャラクター、ナックス

aptコマンド(パッケージの管理)

apt

パッケージ管理システム用の高レベルコマンドラインインターフェース。って言っても意味分かんないよねー。要するに、欲しいパッケージ(ソフトウェアのこと)(例えばお絵描きソフトとかネットワークソフトとか)を検索したり、更新したり、あるいは既にインストールしているソフトウェアを削除したりするためのコマンド。

Linuxではソフトウェアのことを「パッケージ」というんだけど、ウィンドウズ文化の人は最初パッケージと言われても何の事だか分からないと思う。

LinuxのDebianディストリビューションでは、パッケージ管理システムとしてapt、apt-get、aptitudeの3種類のコマンドがあるんだけど、現在はaptを使用することを推奨しているようです。ただし、apt-getやaptitudeの使用を禁止しているわけではないです。

使用例

# apt update

update は、sources.listで設定されたすべての取得元からソフトウェア(パッケージ)情報をダウンロードするために使用される。このコマンドにより、インストールできるパッケージ一覧の最新情報が取得できる。ただし、インストール済みのパッケージの更新まではしてくれない。ほかのコマンド(upgradeやsearchやshowなど)は、このupdateでダウンロードしたデータを操作する。例えば、パッケージのアップグレードを実行したり、中を検索したり、インストール可能なすべてのパッケージに関する詳細情報を表示する。

# apt upgrade

upgrade は、updateにより取得した最新の情報の中に、インストール済みのパッケージの最新版があれば、それをインストールする。また、最新のパッケージをインストールするために、他のパッケージのインストールも必要な場合は、合わせてインストールする。ただし、パッケージのアップグレードのためにインストール済みのパッケージの削除が必要な場合は、念の為にそのパッケージのアップグレードは行わない。一言で言えば、インストール済みパッケージを安全にアップグレードするためのコマンド。通常このコマンドは、updateをしたあとに行う。

# apt full-upgrade

full-upgrade はupgradeと同じくアップグレードの機能を実行しますが、upgraeと異なり、システム全体をアップグレードするために必要とされる場合には、現在インストール済みのパッケージを削除することができる。一言で言えば、インストール済みパッケージを積極的にアップグレードするためのコマンド。通常このコマンドは、updateをしたあとに行う。

# apt install パッケージ名
パッケージをインストールする。
# apt remove パッケージ名
パッケージを削除する(ソフトウェア本体のみ)。
# apt purge パッケージ名

パッケージを削除する(ソフトウェア本体だけでなく設定ファイルも削除する)。

removeで削除した場合は設定ファイルは残っているので、再度後からインストールした時に、以前の状態に復元することが出来るが、purgeは、再度後からインストールした時は本当にまっさら(新品)の状態からインストールということになる。

上書き指定子

apt install、apt remove、apt purgeのそれぞれのコマンドで指定するソフトウェア名には「上書き指定子」というものが指定できます。この、上書き指定子を指定することにより、installやremoveなどのオプションを無視した命令を下すことが出来ます。

実際には「apt install パッケージ名-」というようにします(パッケージ名の後ろに-がついていることが分かるでしょうか?)。

パッケージ名+
オプションに関係なくパッケージをインストールします。
パッケージ名-
オプションに関係なくパッケージを削除します。
パッケージ名=パッケージのバージョン
選択したパッケージのインストール。
パッケージ名/コード名またはスイート名
パッケージ名にスラッシュ(/)およびコード名(stretch、buster、sid ...)またはスイート名(stable、testing、unstable)を続けることで、特定のリリースのバージョンをインストールすることができます。また。必要な場合には、パッケージの依存関係を満たすリリースからバージョンを選択する。
# apt autoremove
autoremove は、他のパッケージの依存関係を満たすために自動的にインストールされた後に、依存関係の変更あるいは必要としていたパッケージが削除されたことでもう必要なくなったパッケージの削除に使用する。
$ apt search 検索キーワード

検索キーワードにひっかかったパッケージの一覧を表示する。一般ユーザーから実行可能。

以下、実行例

$ apt search img
ソート中... 完了
全文検索... 完了  
abootimg/stable 0.6-1+b2 amd64
  Tool to read/write/update android boot images

acetoneiso/stable 2.4-2+b2 amd64
  CD や DVD のイメージをマウント・管理する機能豊富なアプリケーション

append2simg/stable 1:7.0.0+r33-1 amd64
  Android sparse image tool

cbflib-bin/stable 0.9.2.2-1+b1 amd64
  utilities to manipulate CBF files

cbflib-doc/stable 0.9.2.2-1 all
  documentation for CBFlib

cimg-dev/stable 1.7.9+dfsg-1 all
  powerful image processing library

cimg-doc/stable 1.7.9+dfsg-1 all
  documentation of cimg-dev imaging library

cimg-examples/stable 1.7.9+dfsg-1 all
  examples for cimg-dev imaging library
$ apt show パッケージ名

ソフトウェアの詳細情報を表示する。

以下、実行例

$ apt show dolphin
Package: dolphin
Version: 4:16.08.3-3
Priority: optional
Section: utils
Maintainer: Debian/Kubuntu Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Installed-Size: 3,365 kB
Depends: baloo-kf5, kinit, kio, libc6 (>= 2.14), libdolphinvcs5 (>= 4:15.07.90), libkf5baloo5 (>= 5.3.0+git20150512), libkf5baloowidgets5 (>= 15.08.0), libkf5bookmarks5 (>= 4.96.0), libkf5codecs5 (>= 4.96.0), libkf5completion5 (>= 4.97.0), libkf5configcore5 (>= 4.98.0), libkf5configgui5 (>= 4.97.0), libkf5configwidgets5 (>= 4.96.0), libkf5coreaddons5 (>= 5.16.0), libkf5crash5 (>= 5.15.0), libkf5dbusaddons5 (>= 4.97.0), libkf5filemetadata3 (>= 5.19.0), libkf5i18n5 (>= 4.97.0), libkf5iconthemes5 (>= 5.0.0), libkf5itemviews5 (>= 4.96.0), libkf5jobwidgets5 (>= 4.96.0), libkf5kcmutils5 (>= 4.96.0), libkf5kiocore5 (>= 5.2.0+git20140925), libkf5kiofilewidgets5 (>= 5.6.0+git20150116.0016+15.04), libkf5kiowidgets5 (>= 5.16.0), libkf5newstuff5 (>= 5.10.0), libkf5notifications5 (>= 4.96.0), libkf5parts5 (>= 4.96.0), libkf5service-bin, libkf5service5 (>= 4.99.0), libkf5solid5 (>= 4.97.0), libkf5textwidgets5 (>= 4.96.0), libkf5widgetsaddons5 (>= 5.6.0+git20150110.0009+15.04), libkf5windowsystem5 (>= 4.96.0), libkf5xmlgui5 (>= 4.98.0), libphonon4qt5-4 (>= 4:4.8.0), libqt5core5a (>= 5.7.0), libqt5dbus5 (>= 5.4.0~), libqt5gui5 (>= 5.7.0), libqt5widgets5 (>= 5.4.0), libqt5xml5 (>= 5.4.0~), libstdc++6 (>= 4.1.1), phonon4qt5
Recommends: kio-extras, ruby
Suggests: dolphin-plugins
Homepage: http://www.kde.org/
Tag: implemented-in::c++, interface::graphical, interface::x11,
 role::program, suite::kde, uitoolkit::qt, use::organizing,
 works-with::file, x11::application
Download-Size: 1,051 kB
APT-Sources: http://oyu-net.jp/debian stable/main amd64 Packages
Description: file manager
 Dolphin is the default file manager in the Plasma, intended
 to be both powerful and easy to use.
 .
 Features include:
   Customisable sidebars
   "Breadcrumb" navigation
   View properties remembered for each folder
   Split views
   Network transparency
   Undo/redo functionality
   Ratings, comments, and tags
# apt list 基準

list は、一定の基準を満たすパッケージのリストを表示することができる。例えば、基準としてインストール済み(--installed)、アップグレード可能(--upgradeable)または利用可能なすべてのバージョン(--all-versions)などが使用できる。

例えばapt list --installed や apt list --upgradeable のように使用する。

# apt edit-sources

edit-sources は、好きなテキストエディタで sources.list ファイルを編集することができる。また、編集終了後、問題がないかのチェック機能もある。

apt edit-sourcesを実際に使用した例を以下に示す。

# apt edit-sources

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]:

初回起動時は、このように表示され、使用したいテキストエディタを番号で指定する。私は、2のvimを使用したいので、2を入力してEnterキーを押下した。vimテキストエディタは使い方が少し難しいので、Linuxディストリビューションに慣れていない方はnanoというテキストエディタ(1)がオススメだが、先にテキストエディタの使い方を確認しておいたほうがいい。nanoテキストエディタの使い方は27.Linuxの文字書きソフト(テキストエディタ)nanoを参考のこと。

# apt edit-sources

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]: 2

2を入力してEnterキーを押下した時点で、/etc/apt/sources.listファイルをvimで開いた状態になる。ここで、設定したい内容にsources.listファイルを修正する。修正方法は/etc/apt/sources.list(パッケージのダウンロード元設定ファイル・Debian)も参考にしてみてください。

修正を終えて、保存、終了すると、自動的に内容をチェックされ、問題があるようであれば以下のような表示がされる。

E: ソースリスト /etc/apt/sources.list の 9 行目が不正です (type)
E: ソースのリストを読むことができません。
/etc/apt/sources.list の解析に失敗しました。再編集しますか?  [Y/n] 	

上記は9行目の記述に問題があった場合の例である。やり直したい場合はYを入力してEnterキーを押す。間違ったままでいい場合はnを押してEnterキーを押す。

また、修正後に内容が正しい場合は、以下のような表示がされる。

'/etc/apt/sources.list' ファイルが変更されています。「apt-get update」を実行してください。
#

表示ではapt-get updateとなっているが、apt updateを使用しても構わない。sources.list修正後は、apt update(またはapt-get update またはaptitude update)を実行しないと最新の情報が取得できない。

なお、使用するテキストエディタは2回目以降は、自動的に初回に選択したテキストエディタで起動されるらしい。使用するテキストエディタを変更したい場合はselect-editorコマンドを使用することで、使用するテキストエディタを変更できる。

# select-editor

Select an editor.  To change later, run 'select-editor'.
  1. /bin/nano        <---- easiest
  2. /usr/bin/vim.basic
  3. /usr/bin/vim.tiny

Choose 1-3 [1]: 2
#

「ソフトウェアを検索してみたけど、情報が多すぎて一画面に収まらない」っていう時は、|(パイプ)と他のコマンドを組み合わせたりします。

例えば

$ apt search a | less

とすれば、情報を一画面でスクロール出来るようになります。

apt updateでソフトウェア(パッケージ)の一覧が更新されるって言ったけど、その一覧はどこから手に入れるのか、という情報が書かれているのが/etc/apt/にあるsources.listファイル。

$ cd /etc/apt/
$ ls
apt.conf.d  listchanges.conf preferences.d sources.list  sources.list.d  sources.list.d  sources.list~  trustdb.gpg  trusted.gpg  trusted.gpg.d
$ vim sources.list
# 

# deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

#deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

deb http://ftp.jp.debian.org/debian/ stretch main
deb-src http://ftp.jp.debian.org/debian/ stretch main

deb http://security.debian.org/debian-security stretch/updates main
deb-src http://security.debian.org/debian-security stretch/updates main

# stretch-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ stretch-updates main
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main

ここを書き換えることで、今あるソフトウェア以外も検索やインストールが出来るようになる。ちなみに、実際に書き換えるときはroot権限じゃないと書き換えられません。

# su -
パスワード
# 

直接テキストエディタで書き換えてもいいのですが……

# vim /etc/apt/sources.list

aptコマンドにedit-sourcesというオプションをつけることで、sources.list修正後に自動的に内容に問題がないか確認してくれるので、基本的にはapt edit-sourcesで修正したほうがいいでしょう。

# apt edit-sources

今の私はmainという、Debianフリーソフトウェアガイドラインに沿ったソフトウェアしか検索・インストール出来ないようになっています。

Debianフリーソフトウェアガイドラインに沿っていないソフトウェアの検索・インストールもしたい場合は以下の様に書き換えます。

# 

# deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

#deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

deb http://ftp.jp.debian.org/debian/ stretch main non-free
deb-src http://ftp.jp.debian.org/debian/ stretch main non-free

deb http://security.debian.org/debian-security stretch/updates main non-free
deb-src http://security.debian.org/debian-security stretch/updates main non-free

# stretch-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ stretch-updates main
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main

mainの後に半角の空白スペースを一つ書いた後、non-freeと記入しました。これだけで、かなりインストール・検索できるソフトウェアが増えます。

また、Debianフリーソフトウェアガイドラインに沿ってはいるが、non-freeのソフトも一緒にインストールしないと使えないというソフトウェアを使いたい場合は以下の様に書き換えます。

# 

# deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

#deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

deb http://ftp.jp.debian.org/debian/ stretch main contrib
deb-src http://ftp.jp.debian.org/debian/ stretch main contrib

deb http://security.debian.org/debian-security stretch/updates main contrib
deb-src http://security.debian.org/debian-security stretch/updates main contrib

# stretch-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ stretch-updates main
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main

今度は、non-freeの代わりにcontribを記入しました。これで、Debianフリーソフトウェアガイドラインに沿ってはいるが、non-freeに依存しているソフトウェアを検索・インストールすることが出来るようになります。

ちなみに、mainは文字通りメインとなるもの(といいますか、完全にDebianフリーソフトウェアガイドラインに沿っているソフトのこと)ですので、普通はあまり消さないです。

ちなみに、普通はmain contrib non-freeの三つを使えるようにしているのが一般的な様です。つまり、次のようなsources.listが一般的です。

# 

# deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

#deb cdrom:[Debian GNU/Linux 9.1.0 _Stretch_ - Official amd64 NETINST 20170722-11:28]/ stretch main

deb http://ftp.jp.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stretch main contrib non-free

deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free

# stretch-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ stretch-updates main
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main

また、これら以外にもボランティアで独自のdebian用ソースリストを配布している所がありますので、検索して見てください。

ログ
aptコマンドのログは/var/log/apt/以下のファイルに記録されています。このファイルには今までどんなパッケージをインストールしたか(または削除したか)が書かれています。