APT 2.0がリリースされました
2020年3月7日、「APT 2.0」がリリースされました。APT
「APT(Advanced Package Tool)」は、パッケージ管理ツールです。「APT」は、パッケージの管理や操作、問い合わせなど、パッケージ関連の操作を行うツール群やライブラリーを提供しています。
「apt」や「apt-get」コマンドはその一例です。
また「Synaptic」や「Ubuntuソフトウェア」、「ソフトウェアの更新」など、「APT」のフロントエンドとして動作するソフトウェアもあります。
直接ユーザーの目に「APT」が触れることがなくても、ユーザーは結果的に「APT」を毎日のように利用しています。
APT 2.0
前身の「APT 1.9」がしばらくの間「実験版(experimental)」で提供された後、「APT 2.0」にバージョンアップし、「不安定版(unstable)」に登場しました。また「APT 1.9」は「Ubuntu 19.10」でも採用されています。
ちなみに現時点で「Ubuntu 20.04 LTS」では、「APT 1.9」になっています。
新機能の追加や改良
「APT 1.8」シリーズと比較し「APT 2.0」では、新機能の実装やパフォーマンスの改善、安全性の向上が行われています。またコードの削減により、ライブラリーのサイズが減少しています。
APT 2.0の主な変更点
「APT 1.8」から変更された「APT 2.0」の主な変更点を紹介します。詳細は上記のリリースアナウンスを参照してください。
1.aptitudeスタイルのパターンに対応
コマンドはパッケージ名に「aptitude」スタイルのパターンを指定できるようになりました。パターンの形式(シンタックス)は、ほぼ「aptitude」のサブセットになっています。
詳細は「apt-patterns(7)」を参照してください。
また「apt」コマンドでは、正規表現やワイルドカードをパッケージ引数に指定できなくなったため、代わりに上記パターンを使用してください。
2.dpkgのロック待ちに対応
「apt」コマンドは、「dpkg」のロックを待つようになりました。「tty」に接続した時は無期限にロックを待ちます。
それ以外は120秒間、ロックを待ちます。
3.ロックに失敗した時にメッセージを表示
ロックに失敗した時は、現在ロックしている他プロセスの名称とプロセスID(pid)を出力します。4.satisfyコマンドの追加
「apt」及び「apt-get」コマンドに「satisfy」コマンドが新規追加されました。satisfy (apt-get(8))
satisfy satisfies dependency strings, as used in Build-Depends. It also handles conflicts, by prefixing an argument with "Conflicts: ".
Example: apt satisfy "foo, bar (>= 1.0)" "Conflicts: baz, fuzz"
5.ソースパッケージを対象にPinを指定可能に
ソースパッケージ名に「src:」を指定することで、ソースパッケージを対象にPinを指定できるようになりました。
Package: src:apt
Pin: version 2.0.0
Pin-Priority: 990
Pin: version 2.0.0
Pin-Priority: 990
6.libgcryptに移行
「MD5」や「SHA1」、「SHA2」系のハッシュ処理に、埋め込みのリファレンス実装を使用していましたが、これらの実装の代わりに「libgcrypt」を使用するようになりました。また埋め込みのリファレンス実装は削除されました。
7.認証情報
「auth.conf」で指定された認証情報は、「HTTPS」ソースにのみ適用されるようになりました。これにより悪意ある第三者がHTTPリダイレクトにより、認証情報を盗み取る行為を防ぎます。