俺様サーバー構築記 - パッケージインストール時の手順@ノートパソコン
「俺様サーバー構築記 - 基本方針」以来構築を続けてきた俺様パソコン環境ですが、/etc の管理機能を追加した結果、パッケージの追加手順が若干複雑になってきました。ここらできちっと手順をまとめておきます。
手順詳細
事例
例として取り上げるパッケージは dnsutils です。ちょっとした家庭内事情で nslookup
を使おうと思ったら、ArchLinux ではオプション扱いだったんですね… 恐ろしい事に ArchWiki で nslookup
を検索してもヒットしないんですよ…
参考文献:nslookupコマンドがない!? - Arch Linux まとめ
ユーザ
以下の手順はすべて root で実施します。
zfs スナップショット
まずは zfs でスナップショットを撮ります。これは省略しても問題ありませんが、万が一の為に。
# zfs snapshot tank/main@$(date +%Y%m%d_%H%M%S)_before_dnsutils
結果を確認したい時には下記が良いでしょう。余計な情報を遮断できます。
# zfs list -t snapshot -o name -S name | head -n2
NAME
tank/main@20190824_181828_before_dnsutils
インストール
次にパッケージのインストール。
オプション --noconfirm --noprogressbar
は付けない方がいいでしょう。付ければ問い合わせ「インストールを行いますか?」は自動的に y 扱いだし、進捗表示も無くなります。エビデンスなどの為に標準出力をリダイレクトするような場合には非常に便利です。しかし更新 pacman -Syu
ならともかくパッケージインストール時には、念のため様子を見ながら進められるようにしておいた方が無難だと私は考えます。
例えば依存パッケージが想定以上に多かった場合など、中断させる必要は無いですか?とまぁそういうリスク判断です。
# pacman -S dnsutils
依存関係を解決しています...
衝突するパッケージがないか確認しています...
パッケージ (5) dnssec-anchors-20190629-1 geoip-1.6.12-1 geoip-database-20180403-1 lmdb-0.9.24-1 bind-tools-9.14.4-1
合計ダウンロード容量: 2.94 MiB
合計インストール容量: 10.06 MiB
:: インストールを行いますか? [Y/n] y
:: パッケージを取得します...
dnssec-anchors-20190629-1-any 3.6 KiB 0.00B/s 00:00 [##########################################] 100%
geoip-database-20180403-1-any 1195.2 KiB 4.12M/s 00:00 [##########################################] 100%
geoip-1.6.12-1-x86_64 74.8 KiB 255K/s 00:00 [##########################################] 100%
lmdb-0.9.24-1-x86_64 83.9 KiB 1332K/s 00:00 [##########################################] 100%
bind-tools-9.14.4-1-x86_64 1649.7 KiB 2.79M/s 00:01 [##########################################] 100%
(5/5) キーリングのキーを確認 [##########################################] 100%
(5/5) パッケージの整合性をチェック [##########################################] 100%
(5/5) パッケージファイルのロード [##########################################] 100%
(5/5) ファイルの衝突をチェック [##########################################] 100%
(5/5) 空き容量を確認 [##########################################] 100%
:: パッケージの変更を処理しています...
(1/5) インストール geoip-database [##########################################] 100%
(2/5) インストール geoip [##########################################] 100%
geoip の提案パッケージ
geoip-database-extra: city/ASN databases (not needed for country lookups)
(3/5) インストール dnssec-anchors [##########################################] 100%
(4/5) インストール lmdb [##########################################] 100%
(5/5) インストール bind-tools [##########################################] 100%
:: トランザクション後のフックを実行...
(1/1) Arming ConditionNeedsUpdate...
/etc
管理
最後に /etc
の Subversion 管理です。
/etc
に変化があるか確認します。
# svn st /etc
? /etc/bind.keys
M /etc/ld.so.cache
? /etc/trusted-key.key
追加や削除のファイルがあるなら、対応するコマンドを実行します。今回のように2ファイル程度なら手作業で指定しても良いでしょう。沢山あるなら自動化しましょう、下記のように。
念のため削除も示しておきますが、該当ファイルが無ければ実行は不要です。仮に実行してしまっても無害ですが。
# svn st /etc | grep "^?" | cut -b9- | xargs -r svn add
A /etc/bind.keys
A /etc/trusted-key.key
# svn st /etc | grep "^!" | cut -b9- | xargs -r svn rm
そして commit 。適当なコミットメッセージを付けましょう。日本語でも大丈夫ですが、個人的な好みで英語にしています。サーバも巻き込むプロジェクトでは半角文字だけにしておく方が無難という経験則がありまして。Nanchatte-English ですけども
# svn ci /etc -m"install the package dnsutils for nslookup"
追加しています etc/bind.keys
送信しています etc/ld.so.cache
追加しています etc/trusted-key.key
ファイルのデータを送信しています ...done
Committing transaction...
リビジョン 19 をコミットしました。
結果の確認方法。XML でログ表示すれば xmllint
コマンドを通した加工が可能になります。何らかの情報をログから抽出する場合には便利でしょう。
# svn log /etc -rHEAD
------------------------------------------------------------------------
r19 | root_akiho | 2019-08-24 18:43:20 +0900 (2019年08月24日 (土)) | 1 line
install the package dnsutils for nslookup
------------------------------------------------------------------------
# svn log /etc -rHEAD --xml
<?xml version="1.0" encoding="UTF-8"?>
<log>
<logentry
revision="19">
<author>root_akiho</author>
<date>2019-08-24T09:43:20.075756Z</date>
<msg>install the package dnsutils for nslookup</msg>
</logentry>
</log>
以上
基本的な手順は以上ですが、まだ足りない話なんかも幾つかあります。問題発生時の対応など。それについては、実際に対処した場合に追記する予定です。
とは言え大抵はこの手順通りでイケるでしょう。今まで積み上げてきた諸々の苦労(?)との整合性を取りつつパッケージ管理できます。やったね
Author And Source
この問題について(俺様サーバー構築記 - パッケージインストール時の手順@ノートパソコン), 我々は、より多くの情報をここで見つけました https://qiita.com/katz_engineer/items/f3e6c533706f7c8efbfe著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .