7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Alpine linuxで動かないshellがあったときにやったこと。

7
Last updated at Posted at 2018-01-21

経緯

  • mac上で書いたコードをalpine linuxベースのdocker containerで動かそうとした時に動かなくて困った。

原因

  • alpine linuxには標準のシェル ash では、nl コマンドが入っていなかった。
  • ashbashとは違う軽量シェルというのは理解していたが、 POSIXにも書いてあるnlぐらい入っているだろ・・・と思って書いてたら入っていなくて焦った。cat -nで代用しようと思ったら、ashで動くcatにはオプションがなくて使えなかった。

解決方法

  • apk add coreutils を実行する。
  • apkalpine linux のパッケージ管理ツール
  • apk add でパッケージを追加する
  • coreutilsはgnu coreutilsのpackage
  • nl単体でinstallとかどうやってやるんだろ・・・とか悩んでいたら、同僚にcoreutil辺りに入ってるんじゃない?と言われ、パッケージ検索したら発見。すごい感謝です・・・

さいごに

  • シェルは結構実行環境依存があるので、ちゃんと実行環境を揃えましょう。
  • これでも動かなかったら、ちゃんとbashが入っているイメージを使ったほうが良い。
7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?