目次
1.はじめに
2.前提条件
3.実装内容について
4.シェルの中身
5.まとめ
1. はじめに
このソフトウェアインストールしてくれやとか言われてドキュメントを見たら必要なライブラリとかコマンドがびっしりある....そんなときありますよね?(ない)
必要パッケージを一個一個確認するの手間だなと思って作ってみました。(β版)
結構適当に作ったので改善点とかここおかしくね?みたいなのあればコメントいただけるとしっぽブンブンです。
よろしくお願いします。
2. 前提条件
試したOS種はAL2023とRHEL8.9のみなので、動作保証はこいつらだけです。
あと実行するにあたっての権限付与とかのコマンドや作成までの過程はわかるものとして省いてますので、初心者の方については権限付与含め勉強がてら調べてみてください。
3. 実装内容について
ただ記載したコマンドとパッケージ名を確認していくだけです。
対話形式にしようとしたけどそれもまぁめんどくさいかなと。。。
確認したいライブラリ名やコマンドをリスト部分に""で囲って記載して編集してください
例では1,2のみになってますが行を増やせばその分チェックできる。。。。はず。。。。
4. シェルの中身
#!/bin/bash
# ライブラリとコマンドのリスト
libraries=(
"確認したいライブラリ名1"
"確認したいライブラリ名2"
)
commands=(
"確認したいコマンド名1"
"確認したいコマンド名2"
)
# インストールされていないライブラリとコマンドを保持するリスト
missing_libraries=()
missing_commands=()
# ライブラリの確認
for lib in "${libraries[@]}"; do
if ! ldconfig -p | grep -q "$lib"; then
missing_libraries+=("$lib")
fi
done
# コマンドの確認
for cmd in "${commands[@]}"; do
if ! command -v "$cmd" &> /dev/null; then
missing_commands+=("$cmd")
fi
done
# 結果の表示
if [ ${#missing_libraries[@]} -eq 0 ] && [ ${#missing_commands[@]} -eq 0 ]; then
echo "全てのライブラリとコマンドがインストールされています。"
else
if [ ${#missing_libraries[@]} -ne 0 ]; then
echo "インストールされていないライブラリ:"
for lib in "${missing_libraries[@]}"; do
echo "$lib"
done
fi
if [ ${#missing_commands[@]} -ne 0 ]; then
echo "インストールされていないコマンド:"
for cmd in "${missing_commands[@]}"; do
echo "$cmd"
done
fi
fi
5. まとめ
必要ライブラリ&コマンドがインストールされていないことがわかったらインストールは手動でやっていってください。
余談)インストールも自動化しようと思ったのですが、なんか怖いので確認のみのシェルにしてます。
検証環境とかでお試しで使ってみてくださいね