ryo_sakura
2025年3月25日 19時25分
シェルスクリプトプロジェクトにて、main.sh内でpingコマンドを使用するためにiputils-pingをインストールし実行したのですが、「ping: command not found」と出力されてしまいます。
何か対処法はございますでしょうか?
==========
製品型番:
Debian/ABOSバージョン:
カーネルバージョン:
3G/LTE モジュール情報 (Debianのみ):
その他:
==========
コメント
ryo_sakura
at_dominique.m…
お返事ありがとうございます。
> パッケージ追加後にコンテナをビルドしたうえでRUNをしたため、そちらに関しては問題ないかと思われます。
RUNというのは「App run on Armadillo」でしょうか。
DockerfileのRUN命令でしょうか。(そちらでしたらコマンドは見えると思いますが、main.shとの関係がわかりませんので確認させてください)
App run on armadilloでしたら、お手数ですがビルドだけではなく swu をインストールしましたか?
run コマンドですと main.sh がコピーされますが、ビルドしたコンテナは自動的にインストールされません。
dpkg -l で確認していただければ確実です。
また、alpine の iputils-ping では問題ありませんが debian パッケージの場合は ping プログラムが cap_net_raw=ep
のキャパビリティを持ってるため、標準ですと「bash: /usr/bin/ping: Operation not permitted」としてエラーします(No such file or directory ではないので別の問題になります)
そのキャパパビリティは実際に不要なので、Dockerfileにパッケージをインストールした後に「setcap -r /usr/bin/ping」コマンドを実行すればその設定を外せば実行かのうとなります。(コンテナにキャパビリティを設定しても動きますが、不要なのでファイルを直した方がいいと思います。こちらの問題は Debian Trixie で修正されました)
よろしくおねがいします
ryo_sakura
> RUNというのは「App run on Armadillo」でしょうか。
→RUNは「App run on Armadillo」の実行を指しておりました、わかりにくく申し訳ございません。
> App run on armadilloでしたら、お手数ですがビルドだけではなく swu をインストールしましたか?
→はい、ビルドとswuファイルのインストールを行いました。
> また、alpine の iputils-ping では問題ありませんが debian パッケージの場合は ping プログラムが cap_net_raw=ep
のキャパビリティを持ってるため、標準ですと「bash: /usr/bin/ping: Operation not permitted」としてエラーします(No such file or directory ではないので別の問題になります)
→ケイパビリティについてはまだ試していないので、試してみます。
Dockerファイルについてスクリーンショットを添付いたします、ご確認をお願いいたします。
ファイル | ファイルの説明 |
---|---|
スクリーンショット 2025-03-26 140649.png |
at_dominique.m…
2025年3月26日 10時00分
ryo_sakuraさん
お世話になっています、
マルティネです。
> シェルスクリプトプロジェクトにて、main.sh内でpingコマンドを使用するためにiputils-pingをインストールし実行したのですが、「ping: command not found」と出力されてしまいます。
iputils-ping をインストールした方法を教えていただけますでしょうか?
packages.txt にパッケージを追加した後に、「Generate xx swu」でコンテナをビルドしないで「run app on armadillo」だけを実行するとインストールされません。
また、コンテナでaptなどでパッケージをインストールしても次の実行では消えますのでご注意ください。
念の為、main.sh に「dpkg -l iputils-ping」を実行してみてパッケージの有無を確認してみてください。
よろしくおねがいします。