前回紹介したように、久しぶりのメジャーバージョンアップとなるPlamo-8.
Slackwareが生まれたころはソフトウェアの国際化が不十分で、たいていのソフトウェアは英語にしか対応しておらず、日本語を扱うには改造
Linux用の日本語版パッケージの作成は、当時豊橋技術科学大学におられた真鍋敬士さんの
その後、日本語環境をより使いやすくするためにSlackwareからforkして、多くの人々の協力を得ながら独自のディストリビューションとして歩んで来ました。forkした当初はSlackwareのパッケージを日本語化版で置きかえたり、日本語環境に必要なソフトウェアを追加する程度でしたが、収録するソフトウェアの構成やシステムの起動方法、パッケージの作り方などに改造を加えていった結果、Slackwareとはかなり異なるディストリビューションになりました。
Plamo Linuxは、筆者を含めたメンテナが自分たちに使いやすいように開発を進めてきたので、初心者向けの体系だった解説記事等はありません。そこで8.
配布パッケージとパッケージ管理システム
「Linuxの配布パッケージ」
もちろん、後述するようにパッケージをインストール/アンインストールするための専用ツールも用意しています。
さて、それでは実際にPlamo Linuxの配布パッケージを見てみましょう。例として、組み込み式データベースライブラリSQlite-3.
$ ls -l *tzst -rw-rw-r-- 1 kojima users 1,389,814 10月 26日 2022年 sqlite-3.39.4-x86_64-B1.tzst
このファイルはtarをzstdで固めただけなので、"file"コマンドでは
$ file sqlite-3.39.4-x86_64-B1.tzst sqlite-3.39.4-x86_64-B1.tzst: Zstandard compressed data (v0.8+), Dictionary ID: None $ tar tvf sqlite-3.39.4-x86_64-B1.tzst drwxr-xr-x root/root 0 2022-10-26 18:49:27 usr/ drwxr-xr-x root/root 0 2022-10-26 18:49:27 usr/lib/ drwxr-xr-x root/root 0 2022-10-26 18:49:27 usr/lib/pkgconfig/ -rw-r--r-- root/root 280 2022-10-26 18:49:27 usr/lib/pkgconfig/sqlite3.pc ...
「tarを圧縮ツールで固めたパッケージ」
tzst形式はtarとzstdさえあれば手動で展開、インストールできますが、Plamo Linuxでもパッケージをインストール/アンインストールするためのコマンドは用意しています。それがinstallpkg,
installpkg
パッケージをインストールするにはinstallpkgコマンドを使います。"installpkg"は/usr/
$ sudo installpkg sqlite-3.39.4-x86_64-B1.tzst [sudo] kojima のパスワード: **** sqlite-3.39.4-x86_64-B1 のインストール中 PACKAGE DESCRIPTION: sqlite-3.39.4-x86_64-B1 のインストールスクリプトを実行中
"installpkg"は、
- "/var/
log/ packages/<ベース名>"ファイルが存在するかをチェック (存在すればインストール済みとしてエラー終了) - ルートディレクトリ
(/) に移動してパッケージを展開 - パッケージの情報を"/var/
log/ packages/<ベース名>"に記録 - パッケージに添付されたインストールスクリプト
(/install/ doinst. sh) を実行
という処理を行います。
説明の都合上、sqlite-3.
/var/
$ head /var/log/packages/sqlite PACKAGE NAME: sqlite-3.39.4-x86_64-B1 COMPRESSED PACKAGE SIZE: 1357 K UNCOMPRESSED PACKAGE SIZE: 3540 K PACKAGE LOCATION: sqlite-3.39.4-x86_64-B1.tzst PACKAGE DESCRIPTION: FILE LIST: usr/ usr/lib/ usr/lib/pkgconfig/ usr/lib/pkgconfig/sqlite3.pc ...
updatepkg
さて、SQLiteのソースリポジトリを調べると3.
Plamo Linuxではパッケージの更新
$ sudo updatepkg sqlite-3.42.0-x86_64-B1.tzst [sudo] kojima のパスワード: removing sqlite-3.39.4 Removing package sqlite... Removing files: --> Deleting symlink usr/lib/libsqlite3.so --> Deleting symlink usr/lib/libsqlite3.so.0 ... sqlite-3.42.0-x86_64-B1 のインストール中 PACKAGE DESCRIPTION: sqlite-3.42.0-x86_64-B1 のインストールスクリプトを実行中
"updatepkg"は、更新したいパッケージと"/var/
/var/
一方,
$ sudo updatepkg sqlite-3.42.0-x86_64-B1.tzst old:1, new:1 same or newer vesion(sqlite-3.42.0,B1) has been installed. installation stopped for sqlite-3.42.0-x86_64-B1.tzst
"updatepkg"は,
$ sudo updatepkg sqlite-3.39.4-x86_64-B1.tzst same or newer vesion(sqlite-3.42.0) has been installed. installation stopped for sqlite-3.39.4-x86_64-B1.tzst $ sudo updatepkg -f sqlite-3.39.4-x86_64-B1.tzst Removing package sqlite... Removing files: --> Deleting symlink usr/lib/libsqlite3.so ... sqlite-3.39.4-x86_64-B1 のインストール中 PACKAGE DESCRIPTION: sqlite-3.39.4-x86_64-B1 のインストールスクリプトを実行中
removepkg
パッケージを削除するにはremovepkgコマンドを使います。removepkgは/var/
$ sudo removepkg sqlite [sudo] kojima のパスワード: Removing package sqlite... Removing files: --> Deleting symlink usr/lib/libsqlite3.so --> Deleting symlink usr/lib/libsqlite3.so.0 ... --> Deleting empty directory usr/share/doc/sqlite-version-3.39.4
removepkgでパッケージを削除すると、/var/
$ ls /var/log/packages/sqlite ls: '/var/log/packages/sqlite' にアクセスできません: そのようなファイルやディレクトリはありません
/var/
$ sudo installpkg sqlite-3.42.0-x86_64-B1.tzst [sudo] kojima のパスワード: sqlite-3.42.0-x86_64-B1 のインストール中 PACKAGE DESCRIPTION: sqlite-3.42.0-x86_64-B1 のインストールスクリプトを実行中
お気付きの方もいらっしゃると思いますが、元々のパッケージ管理ツールはSlackware由来の"installpkg"と"removepkg"で、"updatepkg"はバージョンチェックした上でこれらのコマンドを実行するラッパー
今回はPlamo Linuxのパッケージ管理ツールを紹介しました。最初に述べたように、Plamoのパッケージはtarをzstdで固めたシンプルな形式で、紹介した管理ツールもシェルスクリプトです。
installpkgとremovepkgはSlackwareが使っていたコードをPlamo用に改造し、updatepkgは
installpkg/
$ less /var/log/install.log i Thu Jun 8 12:41:23 JST 2023: aaa_base-7.0-noarch-B3 i Thu Jun 8 12:41:23 JST 2023: bzip2-1.0.8-x86_64-B1 i Thu Jun 8 12:41:37 JST 2023: db-6.2.38-x86_64-B1 i Thu Jun 8 12:41:37 JST 2023: dcron-4.5-x86_64-B4 .... r Sat Aug 5 16:50:29 JST 2023: sqlite i Sat Aug 5 16:50:45 JST 2023: sqlite-3.39.4-x86_64-B1 r Sat Aug 5 21:46:59 JST 2023: sqlite i Sat Aug 5 21:47:05 JST 2023: sqlite-3.42.0-x86_64-B1
ファイルの各行がひとつのパッケージに対応し、先頭の"i"がインストール、"r"がアンインストールを示します。