データセンターのサーバ群

パッケージ管理

ページ作成日 2016/4/27
ページ更新日 2022/9/28

ソフトウェアは、「生もの」で、バグやセキュリティの修正の観点から、最新のバージョンにアップデートする事が望ましいものの、一方で、人によって開発されているためバージョンアップによって不具合が発生する事もあります。
Slackwareは、セキュリティと安定性を鑑みつつ、ソフトウェアの更新をしていく点で、非常にバランス感覚が優れています。

ソフトウェアの更新頻度が上がり、Slackwareのバージョン番号の更新とリリースは、マイルストーンというよりはスナップショットになり、Slackwareのメジャー番号(整数部)は上がらなくなり、マイナー番号(小数部)の番号が上がっています。
従って、最新のSlackwareのリリースのバージョン番号は、15.0から14.2となりました。
そして、15.0のリリースは延期されていて、実質的にローリングリリースとなっています。

Slackware-currentをインストールして、そちらをソースレポジトリとして、システムを更新し続ける運用がSlackwareのユーザの間では一般的になっています。
Slackware-currentは、ほぼ日次で更新されています。
Slackwareは、slackpkgというパッケージマネージャを利用し、更新情報をチェックして、更新します。

slackpkg

Slackwareには、slackpkgというパッケージ管理ツールがあります。
元々は、Third Partyツールとして、Piter Punk氏によって開発されてきたものですが、9.1からextraフォルダに取り込まれ、12.2でapカテゴリに正式に採用されました。

初期設定

slackpkgは、以下の3つの方法で、パッケージを取得して更新することが可能です。

一般的には、ネットワーク経由でパッケージを取得して更新です。
そこで、パッケージをどこから取得するかを/etc/slackpkg/mirrorsの該当箇所のコメントアウトを削除して選択します。


$ sudo vi /etc/slackpkg/mirrors

#
#----------------------------------------------------------------
# Local CD/DVD drive
#----------------------------------------------------------------
# cdrom://media/cdrom/ ← CD/DVDから取得して更新する場合は、この行の#を消して有効にする
#
#----------------------------------------------------------------
# Local Directory
#----------------------------------------------------------------
# file://path/to/some/directory/ ← ローカルディスクから取得する場合は、この行の#を消して実際のパスを記述して有効にする
#
#----------------------------------------------------------------
# Slackware64-15.0
#----------------------------------------------------------------
# USE MIRRORS.SLACKWARE.COM (DO NOT USE FTP - ONLY HTTP FINDS A NEARBY MIRROR)
# http://mirrors.slackware.com/slackware/slackware64-15.0/
# AUSTRALIA (AU)
# ftp://ftp.cc.swin.edu.au/slackware/slackware64-15.0/
# http://ftp.cc.swin.edu.au/slackware/slackware64-15.0/
# ftp://ftp.iinet.net.au/pub/slackware/slackware64-15.0/
# http://ftp.iinet.net.au/pub/slackware/slackware64-15.0/
# ftp://mirror.aarnet.edu.au/pub/slackware/slackware64-15.0/
# http://mirror.aarnet.edu.au/pub/slackware/slackware64-15.0/

[画面省略]

# JAPAN (JP)  ← ネットワークから取得する場合は、このサーバの内、取得先を一つ選び、その行の#を消して有効にする
# ftp://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-current/
# http://ftp.nara.wide.ad.jp/pub/Linux/slackware/slackware64-current/
# ftp://ftp-srv2.kddilabs.jp/032/Linux/packages/Slackware/slackware64-current/
# http://ftp-srv2.kddilabs.jp/032/Linux/packages/Slackware/slackware64-current/
# ftp://riksun.riken.go.jp/Linux/slackware/slackware64-current/
# http://riksun.riken.go.jp/Linux/slackware/slackware64-current/

逆襲のSlackwareミラーサーバ

逆襲のSlackwareでも、公式サーバをミラーしたミラーサーバを運用しています。
高速なので、他のミラーサーバより、さくっとダウンロードできると思います。

15.0パッケージレポジトリ

64bit版

https://mirror.slackware.jp/slackware/slackware64-15.0

32bit版

https://mirror.slackware.jp/slackware/slackware-15.0

currentパッケージレポジトリ

64bit版

https://mirror.slackware.jp/slackware/slackware64-current

32bit版

https://mirror.slackware.jp/slackware/slackware-current

逆襲のSlackwareのミラーサーバは、公式のミラーサーバ登録のメールアドレスで申請してあるのですが、まだ反映されていないので、/etc/slackpkg/mirrorsに手動で入れてください。

日々の運用

日々の運用では、以下の通りに実行します。

パッケージ更新情報の確認

まずは、パッケージ情報を更新します。
パッケージの更新があったかどうかは、Slackwareの公式サイトのChange Logをチェックします。

パッケージリストの更新

RedHat系のyumやdnfでupdateを行うように、Slackwareでもパッケージリストの更新を行います。
もしも、15.0系のStableなパッケージリストではなく、currentの開発系の最新版を使うように、/etc/slackpkg/mirrorsで、currentの方をコメントアウトした場合には、最初のupdateで以下のように表示されます。


$ sudo slackpkg update


You have selected a mirror for Slackware -current in /etc/slackpkg/mirrors,
but Slackware version 15.0 appears to be installed.

Slackware -current is the development (i.e. unstable) tree.

Is this really what you want?

To confirm your choice, press Y, else press N. Then, press Enter: ← Yを入力してENTERキーを押す

Slackpkg will not show this warning again unless you remove the
//var/lib/slackpkg/current file. 

                        Getting key from https://www.slackware.com/infra/keys/GPG-KEY
                        Slackware Linux Project's GPG key added
Updating the package lists...
        Downloading...
                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/CHECKSUMS.md5.asc...
--2023-03-12 10:14:21--  https://mirror.slackware.jp/slackware/slackware64-current/CHECKSUMS.md5.asc
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 163 [text/plain]
`/tmp/slackpkg.yo5sVV/CHECKSUMS.md5.asc' に保存中

/tmp/slackpkg.yo5sVV/CHECKSUMS.md 100%[===========================================================>]     163  --.-KB/s 時間 0s       

2023-03-12 10:14:21 (242 MB/s) - `/tmp/slackpkg.yo5sVV/CHECKSUMS.md5.asc' へ保存完了 [163/163]

ファイル //var/lib/slackpkg/CHECKSUMS.md5.asc と /tmp/slackpkg.yo5sVV/CHECKSUMS.md5.asc は異なります

        Downloading...
                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/ChangeLog.txt...
--2023-03-12 10:14:21--  https://mirror.slackware.jp/slackware/slackware64-current/ChangeLog.txt
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 549248 (536K) [text/plain]
`/tmp/slackpkg.yo5sVV/ChangeLog.txt' に保存中

/tmp/slackpkg.yo5sVV/ChangeLog.tx 100%[===========================================================>] 536.38K  --.-KB/s 時間 0.03s    

2023-03-12 10:14:21 (20.5 MB/s) - `/tmp/slackpkg.yo5sVV/ChangeLog.txt' へ保存完了 [549248/549248]

                List of all files
                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/patches/MANIFEST.bz2...
--2023-03-12 10:14:21--  https://mirror.slackware.jp/slackware/slackware64-current/patches/MANIFEST.bz2
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14 [application/x-bzip2]
`/tmp/slackpkg.yo5sVV/patches-MANIFEST.bz2' に保存中

/tmp/slackpkg.yo5sVV/patches-MANI 100%[===========================================================>]      14  --.-KB/s 時間 0s       

2023-03-12 10:14:21 (32.7 MB/s) - `/tmp/slackpkg.yo5sVV/patches-MANIFEST.bz2' へ保存完了 [14/14]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/slackware64/MANIFEST.bz2...
--2023-03-12 10:14:21--  https://mirror.slackware.jp/slackware/slackware64-current/slackware64/MANIFEST.bz2
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 4337019 (4.1M) [application/x-bzip2]
`/tmp/slackpkg.yo5sVV/slackware64-MANIFEST.bz2' に保存中

/tmp/slackpkg.yo5sVV/slackware64- 100%[===========================================================>]   4.14M  --.-KB/s 時間 0.1s     

2023-03-12 10:14:22 (34.4 MB/s) - `/tmp/slackpkg.yo5sVV/slackware64-MANIFEST.bz2' へ保存完了 [4337019/4337019]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/extra/MANIFEST.bz2...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/extra/MANIFEST.bz2
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1469687 (1.4M) [application/x-bzip2]
`/tmp/slackpkg.yo5sVV/extra-MANIFEST.bz2' に保存中

/tmp/slackpkg.yo5sVV/extra-MANIFE 100%[===========================================================>]   1.40M  --.-KB/s 時間 0.06s    

2023-03-12 10:14:22 (23.5 MB/s) - `/tmp/slackpkg.yo5sVV/extra-MANIFEST.bz2' へ保存完了 [1469687/1469687]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/pasture/MANIFEST.bz2...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/pasture/MANIFEST.bz2
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14 [application/x-bzip2]
`/tmp/slackpkg.yo5sVV/pasture-MANIFEST.bz2' に保存中

/tmp/slackpkg.yo5sVV/pasture-MANI 100%[===========================================================>]      14  --.-KB/s 時間 0s       

2023-03-12 10:14:22 (39.9 MB/s) - `/tmp/slackpkg.yo5sVV/pasture-MANIFEST.bz2' へ保存完了 [14/14]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/testing/MANIFEST.bz2...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/testing/MANIFEST.bz2
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1462733 (1.4M) [application/x-bzip2]
`/tmp/slackpkg.yo5sVV/testing-MANIFEST.bz2' に保存中

/tmp/slackpkg.yo5sVV/testing-MANI 100%[===========================================================>]   1.39M  --.-KB/s 時間 0.05s    

2023-03-12 10:14:22 (27.0 MB/s) - `/tmp/slackpkg.yo5sVV/testing-MANIFEST.bz2' へ保存完了 [1462733/1462733]

                Checksums
                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/CHECKSUMS.md5...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/CHECKSUMS.md5
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1105170 (1.1M) [text/plain]
`/tmp/slackpkg.yo5sVV/CHECKSUMS.md5' に保存中

/tmp/slackpkg.yo5sVV/CHECKSUMS.md 100%[===========================================================>]   1.05M  --.-KB/s 時間 0.04s    

2023-03-12 10:14:22 (24.2 MB/s) - `/tmp/slackpkg.yo5sVV/CHECKSUMS.md5' へ保存完了 [1105170/1105170]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/CHECKSUMS.md5.asc...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/CHECKSUMS.md5.asc
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 163 [text/plain]
`/tmp/slackpkg.yo5sVV/CHECKSUMS.md5.asc' に保存中

/tmp/slackpkg.yo5sVV/CHECKSUMS.md 100%[===========================================================>]     163  --.-KB/s 時間 0s       

2023-03-12 10:14:22 (439 MB/s) - `/tmp/slackpkg.yo5sVV/CHECKSUMS.md5.asc' へ保存完了 [163/163]

                Package List
                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/FILELIST.TXT...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/FILELIST.TXT
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1438807 (1.4M) [text/plain]
`/tmp/slackpkg.yo5sVV/FILELIST.TXT' に保存中

/tmp/slackpkg.yo5sVV/FILELIST.TXT 100%[===========================================================>]   1.37M  --.-KB/s 時間 0.05s    

2023-03-12 10:14:22 (30.0 MB/s) - `/tmp/slackpkg.yo5sVV/FILELIST.TXT' へ保存完了 [1438807/1438807]

                Package descriptions
                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/patches/PACKAGES.TXT...
--2023-03-12 10:14:22--  https://mirror.slackware.jp/slackware/slackware64-current/patches/PACKAGES.TXT
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 224 [text/plain]
`/tmp/slackpkg.yo5sVV/patches-PACKAGES.TXT' に保存中

/tmp/slackpkg.yo5sVV/patches-PACK 100%[===========================================================>]     224  --.-KB/s 時間 0s       

2023-03-12 10:14:23 (492 MB/s) - `/tmp/slackpkg.yo5sVV/patches-PACKAGES.TXT' へ保存完了 [224/224]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/slackware64/PACKAGES.TXT...
--2023-03-12 10:14:23--  https://mirror.slackware.jp/slackware/slackware64-current/slackware64/PACKAGES.TXT
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 864872 (845K) [text/plain]
`/tmp/slackpkg.yo5sVV/slackware64-PACKAGES.TXT' に保存中

/tmp/slackpkg.yo5sVV/slackware64- 100%[===========================================================>] 844.60K  --.-KB/s 時間 0.03s    

2023-03-12 10:14:23 (26.9 MB/s) - `/tmp/slackpkg.yo5sVV/slackware64-PACKAGES.TXT' へ保存完了 [864872/864872]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/extra/PACKAGES.TXT...
--2023-03-12 10:14:23--  https://mirror.slackware.jp/slackware/slackware64-current/extra/PACKAGES.TXT
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 35459 (35K) [text/plain]
`/tmp/slackpkg.yo5sVV/extra-PACKAGES.TXT' に保存中

/tmp/slackpkg.yo5sVV/extra-PACKAG 100%[===========================================================>]  34.63K  --.-KB/s 時間 0.004s   

2023-03-12 10:14:23 (9.64 MB/s) - `/tmp/slackpkg.yo5sVV/extra-PACKAGES.TXT' へ保存完了 [35459/35459]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/pasture/PACKAGES.TXT...
--2023-03-12 10:14:23--  https://mirror.slackware.jp/slackware/slackware64-current/pasture/PACKAGES.TXT
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.43.50, 172.66.40.206, 2606:4700:3108::ac42:2b32, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.43.50|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 224 [text/plain]
`/tmp/slackpkg.yo5sVV/pasture-PACKAGES.TXT' に保存中

/tmp/slackpkg.yo5sVV/pasture-PACK 100%[===========================================================>]     224  --.-KB/s 時間 0s       

2023-03-12 10:14:23 (541 MB/s) - `/tmp/slackpkg.yo5sVV/pasture-PACKAGES.TXT' へ保存完了 [224/224]

                        Downloading https://mirror.slackware.jp/slackware/slackware64-current/testing/PACKAGES.TXT...
--2023-03-12 10:14:23--  https://mirror.slackware.jp/slackware/slackware64-current/testing/PACKAGES.TXT
mirror.slackware.jp (mirror.slackware.jp) をDNSに問いあわせています... 172.66.40.206, 172.66.43.50, 2606:4700:3108::ac42:28ce, ...
mirror.slackware.jp (mirror.slackware.jp)|172.66.40.206|:443 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 832 [text/plain]
`/tmp/slackpkg.yo5sVV/testing-PACKAGES.TXT' に保存中

/tmp/slackpkg.yo5sVV/testing-PACK 100%[===========================================================>]     832  --.-KB/s 時間 0s       

2023-03-12 10:14:23 (43.2 MB/s) - `/tmp/slackpkg.yo5sVV/testing-PACKAGES.TXT' へ保存完了 [832/832]

        Formatting lists to slackpkg style...
                Package List: using CHECKSUMS.md5 as source
                Package descriptions

以上のように表示がされて、パッケージリストの更新が終わります。

新しいパッケージのインストール

Slackwareでは、パッケージ単位での依存関係のチェックはありませんが、システム全体としては、依存関係があるパッケージは全て用意してあるので、全部インストールするのが基本となっています。
日々のパッケージの更新の中で、今まではインストールされていなかったパッケージが追加になることもあります。
そこで、まずは新しいパッケージが無いか、ある場合にはインストールするコマンドを実行します。


$ sudo slackpkg install-new

新しい追加のパッケージがある場合には、以下のように表示されます。

install
Chose package to install:
      [*] Imath-3.1.5-x86_64-1.txz
      [*] anthy-unicode-1.0.0.20211224-x86_64-1.txz
      [*] fcitx5-5.0.19-x86_64-1.txz
      [*] fcitx5-anthy-5.0.12-x86_64-1.txz
      [*] fcitx5-chinese-addons-5.0.15-x86_64-1.txz
      [*] fcitx5-configtool-5.0.15-x86_64-1.txz
      [*] fcitx5-gtk-5.0.15-x86_64-1.txz
      [*] fcitx5-hangul-5.0.15-x86_64-1.txz
      [*] fcitx5-kkc-5.0.15-x86_64-1.txz
      [*] fcitx5-m17n-5.0.15-x86_64-1.txz
      [*] fcitx5_qt-5.0.15-x86_64-1.txz
      [*] fcitx5-sayura-5.0.8-x86_64-1.txz
      [*] fcitx5-table-extra-5.0.11-x86_64-1.txz
                                                                 33%     
<   OK   >           <Cancel>

全部インストールするので、このままENTERキーを押します。


Package python-sphinx-4.5.0-x86_64-1.txz installed.
        Package python-zipp-3.8.0-x86_64-1.txz is already in cache - not downloading
        Installing python-zipp-3.8.0-x86_64-1...
Verifying package python-zipp-3.8.0-x86_64-1.txz.
Installing package python-zipp-3.8.0-x86_64-1.txz:
PACKAGE DESCRIPTION:
# python-zipp (object wrapper for zip files)
#
# A pathlib-compatible Zipfile object wrapper. Official backport of the
# standard library Path object.
#
# Homepage: https://github.com/jaraco/zipp
#
Package python-zipp-3.8.0-x86_64-1.txz installed.
        Package skanpage-22.08.1-x86_64-1.txz is already in cache - not downloading
        Installing skanpage-22.08.1-x86_64-1...
Verifying package skanpage-22.08.1-x86_64-1.txz.
Installing package skanpage-22.08.1-x86_64-1.txz:
PACKAGE DESCRIPTION:
# skanpage (scanning program)
#
# Skanpage is a multi-page scanning application built using the libksane
# library and a QML interface. It supports saving to image and PDF
# files.
#
# Homepage: https://invent.kde.org/utilities/skanpage/
#
Package skanpage-22.08.1-x86_64-1.txz installed.
        Package xcb-imdkit-1.0.3-x86_64-1.txz is already in cache - not downloading
        Installing xcb-imdkit-1.0.3-x86_64-1...
Verifying package xcb-imdkit-1.0.3-x86_64-1.txz.
Installing package xcb-imdkit-1.0.3-x86_64-1.txz:
PACKAGE DESCRIPTION:
# xcb-imdkit (XIM protocol implementation in xcb)
#
# xcb-imdkit is an implementation of xim protocol in xcb, comparing
# with the implementation of IMDkit with Xlib, and xim inside Xlib,
# it has less memory foot print, better performance, and safer on
# malformed client.
#
# Homepage: https://fcitx-im.org/wiki/Fcitx_5
#
Executing install script for xcb-imdkit-1.0.3-x86_64-1.txz.
Package xcb-imdkit-1.0.3-x86_64-1.txz installed.
Searching for NEW configuration files...
                No .new files found.

最後の箇所に注目して下さい。
”No .new files found.”と表示されていますよね。
もう、これ以上は新しいパッケージは無い、という事です。

パッケージの更新

新しいパッケージをインストールして追加し終えたので、次に既存のパッケージの更新を行います。
既存のパッケージの更新は、以下のコマンドを入力して実行します。


$ sudo slackpkg upgrade-all

すると、更新すべきパッケージがある場合には、以下のように表示されます。

upgrade
Chose package to upgrade:
   [*] Cython-0.29.28-x86_64-1.txz
   [*] GConf-3.2.6-x86_64-8.txz
   [*] LibRaw-0.20.2-x86_64-5.txz
   [*] ModemManager-1.18.12-x86_64-1.txz
   [*] NetworkManager-1.40.0-x86_64-1.txz
   [*] NetworkManager-openvpn-1.10.0-x86_64-1.txz
   [*] OpenCC-1.1.4-x86_64-1.txz
   [*] SDL2-2.24.0-x86_64-1.txz
   [*] SDL2_image-2.6.2-x86_64-1.txz
   [*] SDL2_mixer-2.6.2-x86_64-1.txz
   [*] SDL2_net-2.2.0-x86_64-1.txz
   [*] SDL2_ttf-2.20.1-x86_64-1.txz
   [*] aaa_base-15.1-x86_64-2.txz
                                                            1%     
<   OK   >           <Cancel>

全部インストールするので、このままENTERキーを押します。


+==============================================================================
| Upgrading slackpkg-15.0.10-noarch-1 package using ./slackpkg-15.0.10-noarch-2.txz
+==============================================================================
Pre-installing package slackpkg-15.0.10-noarch-2...
Removing package: slackpkg-15.0.10-noarch-1-upgraded-2022-09-28,02:35:47
Verifying package slackpkg-15.0.10-noarch-2.txz.
Installing package slackpkg-15.0.10-noarch-2.txz:
PACKAGE DESCRIPTION:
# slackpkg (Slackware package upgrade manager)
#
# Slackpkg is an upgrade manager for Slackware packages. It can
# download, upgrade, install, and remove selected packages using an
# official Slackware package repository. With it, you can also
# search in the Slackware Package database and find which package
# has the selected file.
#
# Slackpkg DOES NOT replace the Slackware pkgtools; actually,
# Slackpkg uses pkgtools for the install/upgrade/remove functions.
#
Executing install script for slackpkg-15.0.10-noarch-2.txz.
Package slackpkg-15.0.10-noarch-2.txz installed.
Package slackpkg-15.0.10-noarch-1 upgraded with new package ./slackpkg-15.0.10-noarch-2.txz.
slackpkg was upgraded - you will need start the upgrade process again...

時々、slackpkg自体がアップグレードされるときがあります。
その場合は、上記のような表示が出ます。
この場合には、再度、slackpkg upgrade-allを実行します。

新しいカーネルのコピー

アップグレードは、カーネルのアップグレードが無ければ、自動で終わります。
しかし、カーネルのアップグレードがある場合には、以下のように表示されて、ENTERキーを押す必要があります。


Your kernel image was updated, and lilo does not appear to be used on 
your system.  You may need to adjust your boot manager (like GRUB) to 
boot the appropriate kernel (after generating an initrd if required).
Press the "Enter" key to continue...

カーネルのアップグレードがあった場合には、必ず、新しいvmlinuzを/boot/efi/EFI/Slackwareにコピーします。
eliloconfigのコマンドを実行する必要はありません。
カーネルのアップグレードは頻繁にあるので、これは覚えておきましょう。


$ sudo cp /boot/vmlinuz /boot/efi/EFI/Slackware/vmlinuz

何故、この作業だけで済むかというと、elilo.confが以下のようにシンプルな記載になっているからです。


chooser=simple
delay=1
timeout=1
#
image=vmlinuz
        label=vmlinuz
        initrd=initrd.gz
        read-only
        append="root=/dev/nvme0n1p3 vga=normal ro"

このコマンドは、コマンドプロンプトに戻ってから実行します。 それでは、ENTERキーを押して次に進みます。

設定ファイルが更新された場合

パッケージの更新によって設定ファイルも更新される場合があります。
その場合には、以下のような表示が最後に出ます。


Searching for NEW configuration files

Some packages had new configuration files installed.
You have four choices:

        (K)eep the old files and consider .new files later

        (O)verwrite all old files with the new ones. The
           old files will be stored with the suffix .orig

        (R)emove all .new files

        (P)rompt K, O, R selection for every single file

What do you want (K/O/R/P)? ← Oを入力してENTERキーを押す
K(eep)
古い設定ファイルを残して、新しい設定ファイルは.newの拡張子を付けて保存。自分で後でdiffなどを使って変更箇所を確認して吸収する。
O(verride)
新しい設定ファイルに上書きする。古い設定ファイルは.origの拡張子を付けて保存。自分で後でdiffなどを使って変更箇所を確認して吸収する
R(evmoe)
全ての.newファイルを削除する。
P(rompt)
全ての新しい設定ファイルをどうするかではなく、1つ1つについてK、O、Rのいずれかにするかを選ぶ

昨今の設定ファイルの多くは、基本の設定ファイルは手を付けず、カスタマイズしたい部分だけ専用のconf.dディレクトリ配下の個別の設定ファイルで、設定の上書き・追記形式で設定するのが流儀なので、Oを選んで良いです。

但し、passwdやgroupsなどのユーザの登録情報に関連するファイルが更新される場合があります。
リブートする前にきちんと差分を確認して、Oを選んだら新しい設定ファイルに追記するとか、Kを選んだら新しい設定ファイルの追加分を追記するとか、差分を反映させておきましょう。

さて、カーネルのアップグレードはありましたか?
カーネルのアップグレードがあった場合には、忘れずに、コマンドプロンプトへ戻ってきた今の内に、新しいカーネルイメージのコピーをやっておきましょう。


$ sudo cp /boot/vmlinuz /boot/efi/EFI/Slackware/

除外対象のパッケージの削除

Slackwareのパッケージの選定やシステムに変更により、パッケージそのものが削除される場合も、時折あります。
そのようなパッケージがゴミで残らないように、簡単に削除できるのが、このコマンドです。


$ sudo slackpkg clean-system

公式パッケージリストにないパッケージがシステムにあると、以下のように表示されます。

remove
Chose package to remove:
      [*] anthy-9100h-x86_64-4
      [*] fcitx-4.2.9.8-x86_64-3
      [*] fcitx-anthy-0.2.4-x86_64-1
      [*] fcitx-configtool-0.4.10-x86_64-3
      [*] fcitx-hangul-0.3.1-x86_64-3
      [*] fcitx-kkc-0.1.4-x86_64-3
      [*] fcitx-libpinyin-0.5.4-x86_64-2
      [*] fcitx-m17n-0.2.4-x86_64-3
      [*] fcitx_qt5-1.2.7-x86_64-1
      [*] fcitx-sayura-0.1.2-x86_64-3
      [*] fcitx-table-extra-0.3.8-x86_64-3
      [*] fcitx-table-other-0.2.4-x86_64-3
      [*] fcitx-unikey-0.2.7-x86_64-3
                                                                 26%     
<   OK   >           <Cancel>

すると、以下のようにファイルが削除されていく様子がコマンドプロンプトに表示されます。


  --> /usr/share/locale/et/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/eu/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/fa/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/fi/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/fr/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ga/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/gl/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/hi/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/hr/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/hu/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ia/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/is/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/it/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ja/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/kk/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/km/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ko/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/lt/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/lv/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ml/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/mr/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/nb/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/nds/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/nl/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/nn/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/pa/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/pl/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/pt/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/pt_BR/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ro/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ru/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/se/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/sk/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/sl/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/sq/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/sr/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/sv/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ta/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/tr/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/ug/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/uk/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/vi/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/zh_CN/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/locale/zh_TW/LC_MESSAGES/kio5_zeroconf.mo was found in another package. Skipping.
  --> /usr/share/remoteview/zeroconf.desktop was found in another package. Skipping.
  --> Deleting /usr/doc/zeroconf-ioslave-21.12.1/LICENSES/GPL-2.0-or-later.txt
  --> Deleting /usr/doc/zeroconf-ioslave-21.12.1/LICENSES/LGPL-2.0-only.txt
  --> Deleting /usr/share/metainfo/org.kde.zeroconf-ioslave.metainfo.xml
  --> Deleting empty directory /usr/doc/zeroconf-ioslave-21.12.1/LICENSES/
  --> Deleting empty directory /usr/doc/zeroconf-ioslave-21.12.1/

takehora@sapphire:~$ 

パッケージを削除し終えると、コマンドプロンプトに戻ります。

除外対象から、自分で入れたパッケージを外す

このコマンドを実行する際は、一点、注意が必要です。
除外対象かどうかは、公式のパッケージリストと照らし合わせて、抽出されます。
ですから、SlackBuildでつくったパッケージや、自分でつくったパッケージも対象として抽出されてしまいます。

もしも、それらを表示させたくない場合には、/etc/slackpkg/blacklist を編集して、clean-systemで表示させたくないパッケージを設定します。
blacklistの最後の行をコメントアウトすると、SlackBuild.orgから作ったパッケージは表示されなくなります。


# You can blacklist using regular expressions.
#
# Don't use *full* regex here, because all of the following
# will be checked for the regex: series, name, version, arch,
# build and fullname.
#
# This one will blacklist all SBo packages:
#[0-9]+_SBo ← SlackBuild.orgのパッケージをslackpkgで扱わないようにするためには、この行の#を消して有効にする

自分が作ったパッケージを削除対象から外すには、パッケージの名前を記載しておけば良いです。

まとめ

Slackwareのパッケージメンテナンスは、以下の手順で毎回行いましょう。

  1. sudo slackpkg update
  2. sudo slackpkg install-new
  3. sudo slackpkg upgrade-all
  4. (kernelのアップグレードがあったら)sudo cp /boot/vmlinuz /boot/efi/EFI/Slackware/
  5. sudo slackpkg clean-system