17.2. APT - Advanced Package Tool

17.2.1. APTを使うための準備

APTはパッケージの取り寄せ、インストール、アップグレード、検索などを行う便利なアプリケーションです。 rpmに対してパッケージ間の依存関係や競合関係を解決してくれるためOSのバージョンアップを行うときにも利用できます。

APTはVine Linux 2.1.5から正式採用になっており、それ以降のバージョンでは標準でインストールされています。 もし、APTをアンインストールした場合は Vine LinuxのインストールCDからrpmコマンドを用いてインストールする必要があります。 rpmコマンドの使い方は次節を御覧下さい。CDのマウントに関しては ファイルシステム の マウント を参照してください。

APTがインストールされていると、ファイル /etc/apt/sources.listがあるはずです。 このファイルには apt-line と呼ばれるパッケージを取り寄せる場所が記述されています。 「#」で始まっている行はコメントになっています。 標準では、アップデートパッケージのみをvinelinux.orgからダウンロードするようになっています。

APT全体の設定は、ファイル /etc/apt/apt.conf に書かれています。 また、このファイルで変更された設定を含め、他すべての設定は、apt-config dump で参照できます。 表示が多くなるので apt-config dump | less のようにページャ less を用いると便利です。(参考:7章ページャ less の操作方法)

例17.1 ネットワークからダウンロードする場合

ネットワークに接続されている場合は、ネットワーク上のサーバからダウンロードして、 インストール/アップグレードすることができます。 ただし、ダイアルアップなどの低速なネットワークでOSのバージョンアップを行うと、非常に時間がかかりますので注意して下さい。

ファイル /etc/apt/sources.listの標準設定では、vinelinux.orgのみからパッケージをダウンロードするようになっています。 もし、vinelinux.org のサーバからダウンロードできない場合など、別のサイトからダウンロードする場合は、このファイルを修正して下さい。

たとえば、Ring Server Projectからもパッケージを取得できる様にしたい場合は、以下の様に行頭の#を削除します。

# (ring mirror)
rpm     [vine] http://www.t.ring.gr.jp/pub/linux/Vine/apt 4.1/$(ARCH) main plus updates nonfree
rpm-src [vine] http://www.t.ring.gr.jp/pub/linux/Vine/apt 4.1/$(ARCH) main plus updates nonfree

apt-line の変更は Synaptic でも行えます。

Synapticによるパッケージ管理リポジトリの設定を参照してください。

例17.2 CD-ROMから利用する場合

標準ではネットワークにアクセスします。APT対応のCD-ROM等を入手している場合は、 apt-cdrom コマンドを使用します。

デバイス(CD-ROMドライブ等)とマウントポイントについて

apt-cdrom は、Vine Linux 4.0 から、利用するデバイス(CD-ROMドライブ等)の情報を /etc/fstab ではなく /etc/apt/apt.conf から取得するようになりました。標準(apt.confに特に記述していない状態)で /dev/cdrom を利用するようになっているので、特に設定する必要はありません。

マウントポイントは標準で /mnt/cdrom に設定されています。これは Vine Linux 4.0 以前と同じです。 ただし、インストール直後には /mnt/cdrom は作成されていませんので、root権限で次のようにしてディレクトリを作成してください。

# mkdir -p /mnt/cdrom

それぞれ、変更したい場合には apt-cdrom --helpman apt.conf を参照してください。 apt-cdrom は man の情報よりも --help の方が新しくなっていますので、異なる説明となっている部分については --help の記述を利用してください。

マウントポイントを一時的に変更したい場合は apt-cdrom コマンドの -d オプションを用いて apt-cdrom -d /mnt/cdrom2 add のようにできます。

例17.3 デバイスやマウントポイントの設定を変更する場合

CDデバイスを /dev/cdrom-hdd に、mount point を /media/cdrom2 にするには /etc/apt/apt.conf の Acquire {} の部分に下のようにそれぞれ書き加えます。

Acquire{
	CDROM::Copy "true";
	Retrys "0";
	CDROM::Mount "/media/cdrom2";
	CDROM::Device "/dev/cdrom-hdd";
}

# apt-cdrom add
CDROM のマウントポイントとして以下を使用します: /mnt/cdrom/
CDROM デバイスとして以下を使用します: /dev/cdrom
CDROM をアンマウントしています
CDROM をドライブに挿入してエンターキーを押して下さい

CDROM を挿入し、エンターキーを押します。

CDROM をマウントしています
CDROM の検出中.. [1a64e79571777b6abf752a0d4f283067-2]
CDROM のインデックスファイルのスキャン中..検出 1 パッケージインデックス 0 ソース
インデックス
この DISK に名前をつけてください。例) 'Distribution Disk 1':

Vine Linux 4.1 と入力してエンターキーを押します。

この DISK は: 
 'Vine Linux 4.1'
Reading Indexes... 完了
Writing new source list
この DISK の sources.list のエントリ:
rpm cdrom:[Vine Linux 4.1]/ Vine main
この処理を他の CDROM のためにくり返します。

apt データベースにそのCD-ROMに含まれるパッケージの情報が登録されます。 登録されたあとは CD-ROM は抜いておいて構いません。 VinePlusのCDやソースCDを登録したい場合は同様の手順をおこないます。

CD-ROM の登録を取り消すには

apt-cdrom で CD-ROM を登録した場合、ファイル /etc/apt/sources.list

rpm cdrom:[ラベル(DISKに付けた名前)]/ Vine main

という行が追加されます。

また、ファイル /var/state/apt/cdroms.list

CD::CDの識別情報 "ラベル";

と記述されます。

上の場合では、/etc/apt/sources.list には

rpm cdrom:[Vine Linux 4.1]/ Vine main

と、また、/var/state/apt/cdroms.list には

CD::1a64e79571777b6abf752a0d4f283067-2 "Vine Linux 4.1";

と書かれます。

一時的に、登録したCD-ROM や CD-ROM ドライブが使えないといったような場合には、ファイル /etc/apt/sources.list

rpm cdrom:[ラベル(DISKに付けた名前)]/ Vine main

という行を

# rpm cdrom:[ラベル(DISKに付けた名前)]/ Vine main

のように、行頭に # を付けることでコメント(無効)にしてください。

これによって、CD は利用されなくなります。

もとに戻す(行頭の # を消す)と再び CD を利用できるようになります。

apt-cdrom add とすれば /etc/apt/sources.list に再び記述されるので、この行を消してしまってもかまいません。

また、CD-ROM が利用できなくなった場合など、CDの情報を完全に消去するという場合には、ファイル /var/state/apt/cdroms.list

CD::CDの識別情報 "ラベル";

という行を消すか、ファイル /var/state/apt/cdroms.list を削除してください。

CD につけたラベルの情報も消すことができます。

このファイル(/var/state/apt/cdroms.list)も、apt-cdrom add とすれば再び作成されます。

CD-ROMの取扱いに関する注意

CD-ROM をドライブに入れたままにして電源を切った場合、次回PCの電源を入れた時にインストーラが起動してしまう場合があります。

APT対応のメディア

apt 対応の CD-R などを作成するには、 apt のパッケージに含まれている genbasedir コマンドで パッケージインデックスを作成するなどの特別な処理が必要になります。 この文書ではこうしたメディアの作成方法は扱いません。

apt-get をおこなったときに必要なパッケージが CD-ROMにある場合は以下のようにCD-ROMの挿入をうながされますので、 指示されたCD-ROMを挿入してエンターキーをおすことでapt-get は続行されます。

# apt-get install zsh
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了    
以下のパッケージが新たにインストールされます:
  zsh
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
0B/2398kB のアーカイブを取得する必要があります。
展開後に 5387kB のディスク容量が追加消費されます。
メディア変更: 'Vine Linux 4.1' とラベルされた CDROM を
ドライブ '/mnt/cdrom/' に挿入してエンターキーを押して下さい

取得:1 cdrom://Vine Linux 4.1 Vine/main zsh 1:4.2.5-0vl1 [2398kB]
2398kB を 34s 秒で取得しました (69.1kB/s)
変更を適用しています...
準備中...                   ########################################### [100%]
   1:zsh                    ########################################### [100%]
完了

17.2.2. パッケージ情報の更新

まず、インストールされているパッケージ情報と新しいパッケージの情報のデータベースを更新するために apt-get updateを用います。 apt-getコマンドを用いて、apt-line 上のパッケージ情報を取得し APT 用のデータベースを構築します。 この段階ではまだパッケージの更新は行われません。 sources.list の変更をした場合や、前回の apt-get から数時間以上たった場合はパッケージ情報が更新されていますので、必ず更新の操作をして下さい。

アップデートパッケージを updates.vinelinux.org からダウンロードする場合、以下のように表示されます。

# apt-get update
取得:1 http://updates.vinelinux.org 4.1/i386/base/pkglist.updates [14B]
取得:2 http://updates.vinelinux.org 4.1/i386 release.updates
無視 http://updates.vinelinux.org 4.1/$(ARCH)/base/mirrors
取得完了: 14B を 0s (80B/秒)        
ファイル依存を処理しています... 完了
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了

17.2.3. apt-getコマンドによるパッケージのアップグレード

既にインストールされているパッケージのアップデートを行なうには apt-get upgradeを用います。 この場合は、パッケージが他のものと入れ替わる場合や、消えると言った場合には保留されますので、完全なアップグレードをすることはできません。

# apt-get upgrade
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了    
以下のパッケージがアップグレードされます:
  emacs emacsen-common
2 個のアップグレードパッケージ, 0 個の新規パッケージ, 0 個の削除/リプレースパッケージ, 
0 個の保留パッケージがあります。
取得パッケージ: 21.0MB のアーカイブを取得します。インストール後は 564kB が使用されます。
続行しますか? [Y/n]

オプション-sあるいは--no-actapt-getの後に指定すると、実際にはアップグレード動作は行ないません。 通常は、まずこのオプションを指定して、どのパッケージがアップグレードされるか確認してから行うと良いでしょう。

パッケージが入れ替わる場合などの依存関係の解決が必要な場合は、 dist-upgradeを用います。OS全体のバージョンアップを行う場合はこちらを使用します。

# apt-get dist-upgrade

17.2.4. apt-getコマンドによるパッケージのインストール

特定のパッケージをインストールしたりアップグレードする場合は、 apt-get installを用います。

# apt-get install (パッケージ名)

パッケージ名には複数のパッケージを空白で区切って指定することができます。 パッケージに依存関係がある場合は、自動的に解決され必要となるパッケージもインストールやアップグレードされます。 例えば、パッケージxemacsの場合は、以下のようになります。

# apt-get install xemacs
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了    
以下の追加パッケージがインストールされます:
  xemacs-sumo 
以下のパッケージが新たにインストールされます:
  xemacs xemacs-sumo 
0 個のアップグレードパッケージ, 2 個の新規パッケージ, 0 個の削除/リプレースパッケージ, 
32 個の保留パッケージがあります。
取得パッケージ: 0B/21.0MB のアーカイブを取得します。インストール後は 61.0MB が使用されます。
続行しますか? [Y/n]y
RPM コマンドを実行しています (-U)...
xemacs-sumo                 ##################################################
xemacs                      ##################################################
以下省略

17.2.5. apt-getコマンドによるパッケージの削除

特定のパッケージを削除する場合は、apt-get removeを用います。

# apt-get remove (パッケージ名)

パッケージ名には複数のパッケージを空白で区切って指定することができます。

17.2.6. apt-getコマンドによるアーカイブファイルの削除

apt-getコマンドにより取得されたrpmファイルは、/var/cache/apt/archives/以下に蓄積されていきます。 これらのファイルを一括して削除する場合は、cleanを用います。

# apt-get clean

17.2.7. apt-cacheコマンドによるパッケージ情報の表示

パッケージの情報を知りたい場合は、apt-cacheコマンドを用います。

man apt-cacheapt-cache --help で使い方を見ることができます。参照 困ったときには

まず、gencachesで情報を収集しておきます。

# apt-cache gencaches

apt-getコマンドで update,upgrade,install,remove などを実行した場合には apt-cache gencaches と同じ処理が行われるので、apt-cache gencaches を頻繁に実行する必要はありません。

個別のパッケージ情報を知りたい場合は、apt-cache show (パッケージ名)を用います。apt 自身の場合、以下のように表示されます。

$ apt-cache show apt
Package: apt
Section: Applications/Administration
Installed Size: 2523758
Packager: Daisuke SUZUKI <daisuke@linux.or.jp>
Version: 0.5.15lorg3.2-0vl8.1
Pre-Depends: fileutils, ldconfig, sed, /bin/sh, /bin/sh
Depends: rpm >= 4.0.4, gnupg, bzip2, readline >= 4.3, vine-keyring, /bin/sh, /bi
n/sh, libapt-pkg-libc6.3-5.so.2, libbz2.so.1, libc.so.6, libc.so.6(GLIBC_2.0), l
ibc.so.6(GLIBC_2.1), libc.so.6(GLIBC_2.1.3), libc.so.6(GLIBC_2.2), libc.so.6(GLI
BC_2.2.3), libc.so.6(GLIBC_2.3), libc.so.6(GLIBC_2.3.4), libdl.so.2, libdl.so.2(
GLIBC_2.0), libdl.so.2(GLIBC_2.1), libgcc_s.so.1, libgcc_s.so.1(GCC_3.0), libm.s
o.6, libm.so.6(GLIBC_2.0), libncurses.so.5, libpopt.so.0, libreadline.so.5, libr
pm-4.4.so, librpmdb-4.4.so, librpmio-4.4.so, libstdc++.so.5, libstdc++.so.5(GLIB
CPP_3.2), libxml2.so.2, libz.so.1
Provides: libapt-pkg-libc6.3-5.so.2, apt = 0.5.15lorg3.2-0vl8.1
Architecture: i386
Size: 1007108
MD5Sum: e250f6a02202d097fb536b19c3d494f9
Filename: apt-0.5.15lorg3.2-0vl8.1.i386.rpm
Summary: RPM を扱える Debian のパッケージツール apt(Advanced Packaging Tool)
Description: 
 これはrpm対応の apt です。 apt-getは簡単かつ安全にパッケージ
 のアップグレード,インストールがおこなえるコマンドです。
 apt は依存関係の解決、インストール順序の補完などさまざまな特
 徴があります。

Group: Applications/Administration であるべきところが Section: Applications/Administration となっていますが、これは現在の仕様です。

パッケージの依存関係などを知りたい場合は、apt-cache showpkg (パッケージ名)を用います。

$ apt-cache showpkg apt
Package: apt
Versions: 
0.5.15lorg3.2-0vl8.1.i386(/var/state/apt/lists/Vine%20Linux%204.1_Vine_base_pkgl
ist.main)(/var/lib/rpm/Packages)
0.5.15lorg3.2-0vl7.i386(/var/state/apt/lists/updates.vinelinux.org_apt_4.1_i386_
base_pkglist.main)

Reverse Depends: 
  tiny-buildfarm,apt 0.3.19.cnc.52
  cron-apt,apt
  apt-listchanges,apt 0.5.4.cnc.9
  apt-cron,apt
  synaptic,apt 0.5.15lorg3.2-0vl7
  apt-devel,apt 0.5.15lorg3.2-0vl7
  synaptic,apt 0.5.5
Dependencies: 
0.5.15lorg3.2-0vl8.1 - fileutils (0 (null)) ldconfig (0 (null)) sed (0 (null)) r
pm (2 4.0.4) gnupg (2 (null)) bzip2 (2 (null)) readline (2 4.3) vine-keyring (2 
(null)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (nul
l)) libapt-pkg-libc6.3-5.so.2 (2 (null)) libbz2.so.1 (2 (null)) libc.so.6 (2 (nu
ll)) libc.so.6(GLIBC_2.0) (2 (null)) libc.so.6(GLIBC_2.1) (2 (null)) libc.so.6(G
LIBC_2.1.3) (2 (null)) libc.so.6(GLIBC_2.2) (2 (null)) libc.so.6(GLIBC_2.2.3) (2
 (null)) libc.so.6(GLIBC_2.3) (2 (null)) libc.so.6(GLIBC_2.3.4) (2 (null)) libdl
.so.2 (2 (null)) libdl.so.2(GLIBC_2.0) (2 (null)) libdl.so.2(GLIBC_2.1) (2 (null
)) libgcc_s.so.1 (2 (null)) libgcc_s.so.1(GCC_3.0) (2 (null)) libm.so.6 (2 (null
)) libm.so.6(GLIBC_2.0) (2 (null)) libncurses.so.5 (2 (null)) libpopt.so.0 (2 (n
ull)) libreadline.so.5 (2 (null)) librpm-4.4.so (2 (null)) librpmdb-4.4.so (2 (n
ull)) librpmio-4.4.so (2 (null)) libstdc++.so.5 (2 (null)) libstdc++.so.5(GLIBCP
P_3.2) (2 (null)) libxml2.so.2 (2 (null)) libz.so.1 (2 (null)) 
0.5.15lorg3.2-0vl7 - fileutils (0 (null)) ldconfig (0 (null)) sed (0 (null)) rpm
 (2 4.0.4) gnupg (2 (null)) bzip2 (2 (null)) readline (2 4.3) vine-keyring (2 (n
ull)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (null)) /bin/sh (2 (null)
) libapt-pkg-libc6.3-5.so.2 (2 (null)) libbz2.so.1 (2 (null)) libc.so.6 (2 (null
)) libc.so.6(GLIBC_2.0) (2 (null)) libc.so.6(GLIBC_2.1) (2 (null)) libc.so.6(GLI
BC_2.1.3) (2 (null)) libc.so.6(GLIBC_2.2) (2 (null)) libc.so.6(GLIBC_2.2.3) (2 (
null)) libc.so.6(GLIBC_2.3) (2 (null)) libc.so.6(GLIBC_2.3.4) (2 (null)) libdl.s
o.2 (2 (null)) libdl.so.2(GLIBC_2.0) (2 (null)) libdl.so.2(GLIBC_2.1) (2 (null))
 libgcc_s.so.1 (2 (null)) libgcc_s.so.1(GCC_3.0) (2 (null)) libm.so.6 (2 (null))
 libm.so.6(GLIBC_2.0) (2 (null)) libncurses.so.5 (2 (null)) libpopt.so.0 (2 (nul
l)) libreadline.so.5 (2 (null)) librpm-4.4.so (2 (null)) librpmdb-4.4.so (2 (nul
l)) librpmio-4.4.so (2 (null)) libstdc++.so.5 (2 (null)) libstdc++.so.5(GLIBCPP_
3.2) (2 (null)) libxml2.so.2 (2 (null)) libz.so.1 (2 (null)) 
Provides: 
0.5.15lorg3.2-0vl8.1 - apt libapt-pkg-libc6.3-5.so.2 
0.5.15lorg3.2-0vl7 - apt libapt-pkg-libc6.3-5.so.2 
Reverse Provides: 
apt 0.5.15lorg3.2-0vl7
apt 0.5.15lorg3.2-0vl8.1

ソースパッケージの情報を知りたい場合は、apt-cache showsrc (パッケージ名)を用います。

一般的に package-devel-(バージョン)-(リリース番号).(アーキテクチャ).rpm のソースパッケージは package-(バージョン)-(リリース番号).src.rpm ですが、このように -(バージョン) より前の部分の名前が異なる場合は showsrc では表示されません。

$ apt-cache showsrc apt
Package: apt
Section: Applications/Administration
Installed Size: 1119612
Packager: Daisuke SUZUKI <daisuke@linux.or.jp>
Version: 0.5.15lorg3.2-0vl8.1
Architecture: i386
Size: 1042699
MD5Sum: a670ca043b1668c96e6f5d7496c08047
Filename: apt-0.5.15lorg3.2-0vl7.src.rpm
Summary: RPM を扱える Debian のパッケージツール apt(Advanced Packaging Tool)
Description: 
 これはrpm対応の apt です。 apt-getは簡単かつ安全にパッケージ
 のアップグレード,インストールがおこなえるコマンドです。
 apt は依存関係の解決、インストール順序の補完などさまざまな特
 徴があります。

17.2.8. apt-cacheコマンドによるパッケージの検索

apt-cache search (キーワード)を用いると、パッケージの検索ができます。

キーワードを元にパッケージを検索することができます。

検索には日本語のキーワードも使用できます

ただし、日本語のキーワードよりも英語のキーワードで検索したほうが、多くのパッケージを探せます。

参照 2.4. GUI環境での日本語入力

「オフィス」というキーワードを含むパッケージを検索してみます。

$ apt-cache search オフィス
koffice - KDE 向け統合オフィススイート
openoffice.org - OpenOffice.org オフィススイート
openoffice.org-i18n - OpenOffice.org 国際化対応パッケージ
openoffice.org-libs - OpenOffice.org 共有ライブラリ

このようにkofficeopenoffice.orgといったパッケージがあることがわかります。 さらに詳細を知りたい場合は、--fullオプションを付けて実行します。 検索にひっかかったパッケージそれぞれについてshowと同じように出力されます。

パッケージの含むすべてのファイル名が検索対象になっているわけではありませんが、 ライブラリの名前など具体的なファイル名で検索してもパッケージ名を調べることができる場合もあります。 「ld-linux.so.2」というキーワードを含むパッケージを検索してみます。

$ apt-cache search ld-linux.so.2
glibc - GNU libc ライブラリ

このようにglibcというパッケージがあることがわかります。

17.2.9. トラブルシューティング

Q1. apt-get update が失敗します。
Q2. apt-get コマンドが終了しません。
Q3. パッケージが見付かりません。
Q4. コマンドやオプションが長すぎて入力が大変です。

Q1.

apt-get update が失敗します。

# apt-get update
取得:1 http://updates.vinelinux.org 4.1/i386 release [2255B]
エラー http://updates.vinelinux.org 4.1/i386 release
  File was not signed with a known key. Check if the proper gpg key was imported
 to your keyring.
2255B を 0s 秒で取得しました (7707B/s)
以下の取得に失敗しました: http://updates.vinelinux.org/apt/4.1/i386/base/release
  File was not signed with a known key. Check if the proper gpg key was imported
 to your keyring.
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了    
E: いくつかのインデックスファイルのダウンロードに失敗、無視、あるいは古いものが
使用されました。

A1

これは PC の時計が狂っていることが原因で発生するエラーです。

Vine Linux をインストールするときに、時計の確認をしなかった、そして日時が大幅に狂ったままインストールしてしまった、という場合には、時計が狂っていることでなんらかの悪影響が出ている可能性もあるので、時計を修正したうえで、Vine Linux そのものをインストールし直したほうがいいかもしれません。

時計を修正しても、電源を切って入れ直すとまた狂っているという場合には、マザーボードの電池が消耗しているということも考えられます。その場合には、電池を交換する必要があるかもしれません。パソコンやマザーボードの取り扱い説明書などを確認してください。

PC の時計を確認します。

# date
1970年  1月  1日 日曜日 01:23:45 JST

狂っていたら date コマンドで修正します。

date 月日時分西暦年

という書式です。 2007年5月22日12時34分にするには次のようにします。

# date 052212342007
2007年  5月 22日 月曜日 12:34:00 JST

時計が修正され、年月日曜日時分が出力されます。

apt-get update を実行して正常に動作するか確認してください。

Q2.

apt-get コマンドが終了しません。

apt-get コマンドや rpm コマンドでパッケージのインストールやアンインストールなどを行ったときに

変更を適用しています...
準備中...                   ########################################### [100%]

といった状態で停止して、いつまで待っても処理が終わりません。

A2

synaptic が起動していないか確認して、起動していたら synaptic を終了してください。

synaptic でパッケージの更新やインストールやアンインストールなど、なんらかの作業を行った後、synaptic を起動したままにしていると、rpm のデータベース(どのパッケージがインストールされているかなどの情報)を synaptic がロックしたままになっていて、他のコマンドは順番待ちの状態になります。 synaptic を終了すると、ロックが解除され、apt-get コマンドや rpm コマンドが続きの処理を行うことができるようになり、コマンドの処理が再開します。

Q3.

パッケージが見付かりません。

# apt-get install firefox
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了    
E: パッケージ firefox が見付かりません

A3

一度も apt-get update を実行していない状態では、用意されているパッケージであっても見付かりません。 apt-get installapt-get upgrade を実行する前には、「パッケージ情報の更新」 を実行してください。

パッケージの名前を間違っていないか確認したり、「apt-cacheコマンドによるパッケージの検索」 を実行してください。なお、パッケージが用意されていない場合もあります。

Q4.

コマンドやオプションが長すぎて入力が大変です。

A4

Vine Plus にある zsh のような高度な補完ができるシェルを利用すれば、コマンドの後のオプションなども TABキー 等で補完することができます。

また、標準の bash でも alias や function を利用してある程度入力を簡単にすることができます。function や alias などについては jman bash などを参照してください。

筆者は、~/.bashrc に次のような function を定義して利用しています。

# set aliases として alias がいくつか定義されているその下に # set functions などとして下のようなものを追加してみるといいかもしれません。

例17.4 ~/.bashrcに書いておくfunctionの例

# functions for apt,rpm
function aptsearch () { /usr/bin/apt-cache search "$1" ;}
function aptsearchname () { /usr/bin/apt-cache search --names-only "$1" ;}
function aptsearchpkgnames () { /usr/bin/apt-cache pkgnames "$1" ;}
function aptshow () { /usr/bin/apt-cache show "$1" ;}
function aptshowpkg () { /usr/bin/apt-cache showpkg "$1" ;}
function aptshowsrc () { /usr/bin/apt-cache showsrc "$1" ;}
function aptcategory () { /usr/bin/apt-cache showpkg "$1" | /bin/grep -e "Package" -e "/lists/" ;}

function aptsrc () { /usr/bin/apt-get source "$1" ;}
function aptsrc-d () { /usr/bin/apt-get source -d "$1" ;}

function slrpmqf () { /usr/bin/slocate "$1" | /usr/bin/xargs rpm -qf ;}
function whichrpmqf () { which "$1" ; which "$1" | /usr/bin/xargs rpm -qf ;}

function rpmlogh () { /bin/rpm -q --changelog "$1" | /usr/bin/head ;}
function rpmlogh-p () { /bin/rpm -q --changelog -p "$1" | /usr/bin/head ;}
function rpmlogl () { /bin/rpm -q --changelog "$1" | /usr/bin/lv ;}
function rpmlogl-p () { /bin/rpm -q --changelog -p "$1" | /usr/bin/lv ;}