この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
よく訓練されたアップル信者、都元です。昨日のエントリーはこちらです。さてここからは、Edisonに搭載されたYocto Linuxの中で動いていきます。久しぶりのソフトウェアの世界へ! 今回はopkgについてです。
細々とした環境整備
さてその前に。Edisonの中身はさすが組み込み、最低限の環境しかありません。bashが贅沢な世界です。/bin/shはbusyboxに繋がってます。
まぁ本番運用するハードならばそれが理想的かと思いますが、色々遊んでみるためには少しリッチな方向に調節したいものです。
# echo "alias ll='ls -la --color=auto'" >.profile
# echo "rm='rm -i'" >>.profile
# source .profile
上記を参考に、お好みの設定を書き込んでおきましょう。
opkg
私も初めて使うパッケージマネージャなので、細かいことはよくわかりません。とりあえずパッケージリポジトリの設定が必要なので、下記コマンドで設定ファイルを書き込みます。
# tee /etc/opkg/base-feeds.conf << _EOF_ >/dev/null
src/gz all http://repo.opkg.net/edison/repo/all
src/gz edison http://repo.opkg.net/edison/repo/edison
src/gz core2-32 http://repo.opkg.net/edison/repo/core2-32
_EOF_
# tee /etc/opkg/intel-iotdk.conf << _EOF_ >/dev/null
src intel-all http://iotdk.intel.com/repos/1.1/iotdk/all
src intel-iotdk http://iotdk.intel.com/repos/1.1/intelgalactic
src intel-quark http://iotdk.intel.com/repos/1.1/iotdk/quark
src intel-i586 http://iotdk.intel.com/repos/1.1/iotdk/i586
src intel-x86 http://iotdk.intel.com/repos/1.1/iotdk/x86
_EOF_
あとは下記の通りパッケージ一覧のダウンロード、opkg list-installedでインストール済みパッケージの確認、opkg list-upgradableでアップグレード対象のパッケージ確認等、色々やってみましょう。
# opkg update
Downloading http://repo.opkg.net/edison/repo/all/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/all/Packages.gz.
Updated list of available packages in /var/lib/opkg/all.
Downloading http://repo.opkg.net/edison/repo/edison/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/edison/Packages.gz.
Updated list of available packages in /var/lib/opkg/edison.
Downloading http://repo.opkg.net/edison/repo/core2-32/Packages.gz.
Inflating http://repo.opkg.net/edison/repo/core2-32/Packages.gz.
Updated list of available packages in /var/lib/opkg/core2-32.
Downloading http://iotdk.intel.com/repos/1.1/iotdk/all/Packages.
Updated list of available packages in /var/lib/opkg/intel-all.
Downloading http://iotdk.intel.com/repos/1.1/intelgalactic/Packages.
Updated list of available packages in /var/lib/opkg/intel-iotdk.
Downloading http://iotdk.intel.com/repos/1.1/iotdk/quark/Packages.
Updated list of available packages in /var/lib/opkg/intel-quark.
Downloading http://iotdk.intel.com/repos/1.1/iotdk/i586/Packages.
Updated list of available packages in /var/lib/opkg/intel-i586.
Downloading http://iotdk.intel.com/repos/1.1/iotdk/x86/Packages.
Updated list of available packages in /var/lib/opkg/intel-x86.
こちらでフルアップグレード。
# opkg upgrade
こんな感じでモノをインストールできます。
# opkg install bash git
せっかくbashをインストールしたので使いましょう。
# chsh -s /bin/bash
easy_installとpipの導入
# wget https://bootstrap.pypa.io/ez_setup.py --no-check-certificate -O - | python
# easy_install pip
# pip -V
pip 1.5.6 from /usr/lib/python2.7/site-packages/pip-1.5.6-py2.7.egg (python 2.7)
簡単ですね。素晴らしい。
aws-cliの導入
pipまで入ってしまえば、これもコレだけ! 簡単すぎますね。
# pip install awscli
# aws --version
aws-cli/1.6.7 Python/2.7.3 Linux/3.10.17-poky-edison+
Javaの導入
Javaを入れたくなってしまいました。はい、わたくしjava-jaから来ました。
# wget --no-check-certificate --no-cookies - --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-i586.tar.gz
# tar -xvzf jdk-8u25-linux-i586.tar.gz
# ln -s /home/root/jdk1.8.0_25 /usr/java
# echo 'export PATH=$PATH:/usr/java/bin' >>.profile
# source .profile
# java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) Client VM (build 25.25-b02, mixed mode)
Javaの利用許諾には別途同意してください :)
うぇっへっへ。ちなみに、/usr/javaに直接展開しようとしたら、disk fullでした…。/homeに大きなディスクがマウントされてるんですねー。
# df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 463.9M 386.7M 41.4M 90% /
devtmpfs 480.2M 0 480.2M 0% /dev
tmpfs 480.5M 0 480.5M 0% /dev/shm
tmpfs 480.5M 496.0K 480.0M 0% /run
tmpfs 480.5M 0 480.5M 0% /sys/fs/cgroup
tmpfs 480.5M 496.0K 480.0M 0% /etc/machine-id
systemd-1 5.5M 5.1M 454.0K 92% /boot
tmpfs 480.5M 4.0K 480.5M 0% /tmp
systemd-1 2.2G 473.5M 1.8G 21% /home
tmpfs 480.5M 0 480.5M 0% /var/volatile
/dev/mmcblk0p5 1003.0K 19.0K 913.0K 2% /factory
/dev/mmcblk0p10 2.2G 473.5M 1.8G 21% /home
/dev/mmcblk0p7 5.5M 5.1M 454.0K 92% /boot
さて、動作確認。
# tee Hello.java << _EOF_ >/dev/null
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, world!");
}
}
_EOF_
# javac Hello.java
# java Hello
Hello, world!
OKです! (Javaだけ確認が念入り)
やっちまった時 〜 リセット
色々いじりすぎて収集がつかなくなってしまったら、reboot otaコマンドを撃ちこめば、configure_edisonを実行する前まで戻ってくれます。OSさえ起動しなくなってしまったら…。USBからどうにかする手段があるようなので、また別の機会にご紹介しますね。
明日のエントリーはこちらです。