OpenWRT Chaos Calmer 15.05 に sed や awk をインストールしてみる
OpenWRT の標準の sed や awk は busybox なので、CentOS 等で普段使う sed や awk とは微妙に挙動が違います。
しかし、Chaos Calmer 15.05 では opkg install sed などと実行してもインストール出来ない模様。14.07 までは、この方法でインストールできたんですけどねえ。。。
そこで、14.07 のリポジトリを探してみると、ありましたありました、以下のURLに。
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/
14.07 の時点で oldpackages というディレクトリですから、15.05 では提供されていなくても仕方が無い?
ま、気を取り直して、以下の2つをダウンロードします。
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/sed_4.2.1-1_ar71xx.ipk
http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/generic/packages/oldpackages/gawk_3.1.8-2_ar71xx.ipk
そして、シェル上から以下のように実行するだけ。特に難しい点なし。
root@OpenWrt:~# opkg install sed_4.2.1-1_ar71xx.ipk Installing sed (4.2.1-1) to root... Configuring sed. root@OpenWrt:~# opkg install gawk_3.1.8-2_ar71xx.ipk Installing gawk (3.1.8-2) to root... Configuring gawk.
ちなみに opkg install "パッケージのURL" で直接インストールすることもできます。ここらへんは rpm -ivh も同じですよね。
なお、busybox の sed の不満な点は、エスケープシーケンスを含む文字列置換が上手く行えない点です。自分のところでは logread の出力にエスケープシーケンスで着色するスクリプトを sed で書いておるのですが、これが busybox 版 sed では動かんのです。