宇宙一わかりにくいラズパイ入門(仮称)④
宇宙一わかりにくいラズパイ入門(仮称)③の続きです。
宇宙一わかりにくいラズパイ入門(仮称)④では、アップデート、アップグレード、そして「Vim」です。宇宙一わかりにくい(略)は「Vim」です(大切なので2回言いました。)
宇宙一わかりにくいラズパイ入門(仮称)の趣旨
Raspberry Pi2 Model B に Raspbian(Jessie)をインストールして「IoT×Blockchain までやってしまうよ!」な企画を開始しました。はっきり言って「超絶わかりにくい」ので良質な書籍やブログを読むことをオススメします。皆様の貴重なお時間をムダにするのは本懐ではありません。興味がある方だけ読んでみてください(にっこり)
Raspbian のアップデート
正しくは「パッケージリストの更新」を意味しますが、シンプルに説明すると「Windows Update」のようなものです。これには apt-get コマンドを使います。これから飽きるほど使いますので、実際にやってみながら説明しますね。ちなみに git コマンドも使うことになります。ただし、運用フェーズで何も考えずにアップデートするものではありません。アプリケーションが動かなくなるかもしれませんからね。
pi@raspberrypi:~ $ sudo apt-get update Get:1 http://mirrordirector.raspbian.org jessie InRelease [15.0 kB] Get:2 http://archive.raspberrypi.org jessie InRelease [13.2 kB] Get:3 http://mirrordirector.raspbian.org jessie/main armhf Packages [8,962 kB] Get:4 http://archive.raspberrypi.org jessie/main armhf Packages [142 kB] Hit http://archive.raspberrypi.org jessie/ui armhf Packages Ign http://archive.raspberrypi.org jessie/main Translation-en_US Ign http://archive.raspberrypi.org jessie/main Translation-en 12% [3 Packages 939 kB/8,962 kB 10%] 131 kB/s 1min 1s Ign http://archive.raspberrypi.org jessie/ui Translation-en_US Ign http://archive.raspberrypi.org jessie/ui Translation-en Get:5 http://mirrordirector.raspbian.org jessie/contrib armhf Packages [37.5 kB] Get:6 http://mirrordirector.raspbian.org jessie/non-free armhf Packages [70.3 kB] Get:7 http://mirrordirector.raspbian.org jessie/rpi armhf Packages [1,356 B] Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en_US Ign http://mirrordirector.raspbian.org jessie/contrib Translation-en Ign http://mirrordirector.raspbian.org jessie/main Translation-en_US Ign http://mirrordirector.raspbian.org jessie/main Translation-en Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en_US Ign http://mirrordirector.raspbian.org jessie/non-free Translation-en Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en_US Ign http://mirrordirector.raspbian.org jessie/rpi Translation-en Fetched 9,242 kB in 1min 8s (134 kB/s) Reading package lists... Done
ソフトのアップグレード
正しくは「インストールされてるパッケージの更新」を意味します。Raspbian(Jessie)に最初からインストールされているソフトをアップグレードするのですね。なぜアップグレードするのかと言いますと、機能追加、セキュリティ(脆弱性対応)、バグ(ソフトの問題)のためです。ただし、運用フェーズで何も考えずにアップグレードするものではありません。アップデートと同じ意味ですね。
ようやく Vim 登場!
宇宙一わかりにくいラズパイ入門(仮称)①に書きましたが、公式サイト(ラズベリーパイ財団)だとダウンロード時間が長いので、ミラーサイト(北陸先端科学技術大学院大学 JAIST)を使わせていただきましょう。このためには、/etc/apt/sources.list を書き換えないといけませんが、もう nano はやめましょうか。ほかに vi というテキストエディタが最初からインストールされていますが、これはかなり若干クセがあります。Red Hat Enterprise Linux 系譜のディストリビューション(Amazon Linux、CentOS)を使う時も同じ操作ができるようにするためです。決して、Vim中毒者(通称:Vimmer)になるためではありません。Google先生で Vimmer を検索すると「他のキーワードに「vimmer こわい」と表示されますが気のせいです(にっこり)
# -y は[Y/n]で Y を自動選択するオプション。 pi@raspberrypi:~ $ sudo apt-get -y install vim Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: vim-runtime Suggested packages: ctags vim-doc vim-scripts The following NEW packages will be installed: vim vim-runtime 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 5,857 kB of archives. After this operation, 28.2 MB of additional disk space will be used. Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main vim-runtime all 2:7.4.488-7 [5,047 kB] Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main vim armhf 2:7.4.488-7 [809 kB] Fetched 5,857 kB in 21s (276 kB/s) Selecting previously unselected package vim-runtime. (Reading database ... 126313 files and directories currently installed.) Preparing to unpack .../vim-runtime_2%3a7.4.488-7_all.deb ... Adding 'diversion of /usr/share/vim/vim74/doc/help.txt to /usr/share/vim/vim74/doc/help.txt.vim-tiny by vim-runtime' Adding 'diversion of /usr/share/vim/vim74/doc/tags to /usr/share/vim/vim74/doc/tags.vim-tiny by vim-runtime' Unpacking vim-runtime (2:7.4.488-7) ... Selecting previously unselected package vim. Preparing to unpack .../vim_2%3a7.4.488-7_armhf.deb ... Unpacking vim (2:7.4.488-7) ... Processing triggers for man-db (2.7.0.2-5) ... Setting up vim-runtime (2:7.4.488-7) ... Processing /usr/share/vim/addons/doc Setting up vim (2:7.4.488-7) ... update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode
# デフォルトエディタの変更 # vim.basicを選択します。vim.tiny は低機能なのでオススメしません pi@raspberrypi:~ $ sudo update-alternatives --config editor There are 4 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ * 0 /bin/nano 40 auto mode 1 /bin/ed -100 manual mode 2 /bin/nano 40 manual mode 3 /usr/bin/vim.basic 30 manual mode 4 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number: 3 update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/editor (editor) in manual mode
nanoとedのアンインストール
# アンイストールコマンドは autoremove # nanoの削除 pi@raspberrypi:~ $ sudo apt-get -y autoremove nano Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: nano 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 1,356 kB disk space will be freed. (Reading database ... 127978 files and directories currently installed.) Removing nano (2.2.6-3) ... Processing triggers for install-info (5.2.0.dfsg.1-6) ... Processing triggers for man-db (2.7.0.2-5) ... # edの削除 pi@raspberrypi:~ $ sudo apt-get -y autoremove ed Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: ed 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 77.8 kB disk space will be freed. (Reading database ... 127894 files and directories currently installed.) Removing ed (1.10-2) ... Processing triggers for man-db (2.7.0.2-5) ... Processing triggers for install-info (5.2.0.dfsg.1-6) ...
デフォルトエディタの再確認
pi@raspberrypi:~ $ sudo update-alternatives --config editor There are 2 choices for the alternative editor (providing /usr/bin/editor). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/bin/vim.basic 30 auto mode * 1 /usr/bin/vim.basic 30 manual mode 2 /usr/bin/vim.tiny 10 manual mode Press enter to keep the current choice[*], or type selection number: 0
viをVimのエイリアスへ(Vimコマンド練習も兼用)
pi@raspberrypi:~ $ ls -all | grep .bashrc -rw-r--r-- 1 pi pi 3512 Feb 9 23:56 .bashrc pi@raspberrypi:~ $ cp -p .bashrc .bashrc.old pi@raspberrypi:~ $ vim .bashrc # :set number で行番号表示 # :syntax on で色付け(シンタックスハイライト) # 94行目まで移動し、IキーでINSERTモードにする 90 # some more ls aliases 91 #alias ll='ls -l' 92 #alias la='ls -A' 93 #alias l='ls -CF' 94 alias vi='vim' # 追加 95 alias ll='ls -all' # 追加 96 # Escキーで表示モードに戻り :wq! で上書き保存して終了(:q! は保存せずに終了) pi@raspberrypi:~ $ diff .bashrc .bashrc.old 94,95d93 < alias vi='vim' < alias ll='ls -all' # llコマンドが使えないことを確認 pi@raspberrypi:~ $ ll -bash: ll: command not found # 設定を反映 pi@raspberrypi:~ $ source .bashrc # ll コマンドが使えることを確認 pi@raspberrypi:~ $ ll total 120 drwxr-xr-x 17 pi pi 4096 Mar 3 23:48 . drwxr-xr-x 3 root root 4096 Jan 1 1970 .. -rw-r--r-- 1 pi pi 69 Feb 10 01:16 .asoundrc -rw------- 1 pi pi 10554 Mar 3 18:31 .bash_history -rw-r--r-- 1 pi pi 220 Feb 9 23:56 .bash_logout -rw-r--r-- 1 pi pi 3546 Mar 3 23:48 .bashrc -rw-r--r-- 1 pi pi 3512 Feb 9 23:56 .bashrc.old
これで皆さんも Vimmer Vim使いです。viコマンドで Vim が使えます。llコマンドで ls -allコマンドのエイリアス(別名)となります。 実はviをVimにエイリアスにする必要はないのですが、Amazon Linux で使える技なのでやっておきました(にっこり)
リポジトリの変更
/etc/apt/sources.list を http://mirrordirector.raspbian.org/raspbian/からhttp://ftp.jaist.ac.jp/raspbian/へ変更しましょう。
pi@raspberrypi:~ $ sudo cp -p /etc/apt/sources.list /etc/apt/sources.list.old
pi@raspberrypi:~ $ sudo vi /etc/apt/sources.list
#deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi # コメントアウト # Uncomment line below then 'apt-get update' to enable 'apt-get source' #deb-src http://archive.raspbian.org/raspbian/ jessie main contrib non-free rpi deb http://ftp.jaist.ac.jp/raspbian jessie main contrib non-free rpi # 追加(jessieであることが大事)
pi@raspberrypi:~ $ diff /etc/apt/sources.list /etc/apt/sources.list.old 1c1 < #deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi --- > deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi 4,5d3 < < deb http://ftp.jaist.ac.jp/raspbian jessie main contrib non-free rpi
インストールされてるパッケージの更新
apt-get upgrade の出番です。国内のサーバをアクセスするので、気持ちいいくらい速いですよ。
pi@raspberrypi:~ $ sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: bluej cpio firmware-atheros firmware-brcm80211 firmware-libertas firmware-ralink firmware-realtek libbluetooth3 libc-bin libc-dev-bin libc6 libc6-dbg libc6-dev libgcrypt20 libgraphite2-3 libraspberrypi-bin libraspberrypi-dev libraspberrypi-doc libraspberrypi0 libssh-4 libssh2-1 libssl1.0.0 locales multiarch-support nodered openssl perl perl-base perl-modules python-pil python-rpi.gpio python3-pil python3-rpi.gpio raspberrypi-bootloader raspi-config rc-gui wiringpi 37 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 108 MB of archives. After this operation, 2,200 kB of additional disk space will be used. Do you want to continue? [Y/n] y # [y]を押す。 (中略) Setting up libraspberrypi0 (1.20160225-1) ... Setting up libraspberrypi-dev (1.20160225-1) ... Setting up libraspberrypi-doc (1.20160225-1) ... Setting up libraspberrypi-bin (1.20160225-1) ... Processing triggers for libc-bin (2.19-18+deb8u3) ... Processing triggers for initramfs-tools (0.120) ...
パッケージ数の確認
Raspbian(Jessie)のデフォルトにインストールされているパッケージ数を調べてみましょう。古典的な dpkgコマンド実行後に |(パイプ)で標準出力結果を渡して、 wc -l で行数を計算します。
pi@raspberrypi:~ $ dpkg -l | wc -l 1151
1151もありますね。正確には1150です。nano が rc になっています。これはパッケージ(nano)は削除したけど、設定ファイルは残っているよと教えてくれているのです。それでは消しましょうか。
pi@raspberrypi:~ $ dpkg -l | grep nano rc nano 2.2.6-3 armhf small, friendly text editor inspired by Pico
設定ファイルも含めたパッケージの削除
apt-get purge の出番です。
pi@raspberrypi:~ $ sudo apt-get -y purge nano Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: nano* 0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded. After this operation, 0 B of additional disk space will be used. (Reading database ... 127881 files and directories currently installed.) Removing nano (2.2.6-3) ... Purging configuration files for nano (2.2.6-3) ... pi@raspberrypi:~ $ dpkg -l | wc -l 1150
1150になりましたね。nanoは設定ファイルも含め、完全に削除されたわけですね。これでは君たちもVimmer Vim使いです! apt-getコマンドと、dpkgコマンドはよく使うのでGoogle先生に相談しながら少しずつ経験値を上げていきましょう。
(それでも続く)
※ Amazon Web Services、“Powered by Amazon Web Services”ロゴ、及び本ブログで使用されるその他のAWS商標は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ SORACOM、その他のSORACOMサービスは、株式会社ソラコムの登録商標または商標です。