寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

Raspberry Pi : tmuxをインストールする

Motivation

Raspberry Pi上でなにか処理をするとまーまー時間がかかります。
特にDockerのBuildとか待ってるのしんどいですよね。もうすぐ帰ろうというタイミングでうっかり実行すると悲しくなります。
そんな時にtmuxがインストールされていればデタッチすればSSH接続が切れてもOK。そんなわけでインストールしましょう。

tmuxのインストール

sudo apt-get -y install tmux

tmuxを実行してみる

tmux

なんかかっこいいバーが下段に出てきたら成功。

セッションをデタッチしてみる

デフォルトのコントロールキーが Control + b なので、

Control + b (を押したあとに) d

これでtmuxセッションが生きたままデタッチができる

デタッチしたセッションに再度アタッチし直す

先程のセッションにアタッチするので

tmux attach

これでまたさっきのカッコイバーが出ている画面に戻る。

長い時間が必要なバッチを実行する場合などは、 tmux を起動した状態でスクリプトを実行し、
detachすることで端末とのSSHが切れてもバッチが止まることがないので便利。

tmuxのconfigのカスタマイズ

先程のコントロールキーのバインドなどを任意に変更ができる。
この記事では詳しくは書きません

Raspberry Pi : Dockerのexperimentalな機能(--squash)を有効化する

Motivation

MacRaspberry Piバージョンは 18.06.1-ce で同じものを使っていたのですが、Mac側では--squashを利用できたものの、Raspberry Pi側では利用できなかったので有効化したい。
(おそらくMacはDocker on MacのEdgeを利用していたので有効化されていたのでは?)

設定する

experimentalな機能を有効化するには /lib/systemd/system/docker.service 内の以下の場所を修正する必要がある。

sudo vi /lib/systemd/system/docker.service

ExecStart の行を以下のように変更する

ExecStart=/usr/bin/dockerd -H fd:// -s overlay --experimental

(overlayもついでに追加した)

Dockerの再起動

設定を有効化するにはDockerを再起動する必要がある

sudo systemctl daemon-reload
sudo systemctl restart docker

これで --squash コマンドも利用できるようになります。

Raspberry Pi : Dockerのインストールと設定を行う

Motivation

もちろん、Raspberry PiでもDocker使いたいっしょ!w

Dockerのインストール

curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh

Dockerグループの作成

sudo groupadd docker

もしかするとすでにあるかも

piユーザをdocker groupに追加する

sudo gpasswd -a $USER docker

一旦exitしてSSHログインし直す

そのままだと docker コマンド叩いてもうまくいかないかも

dockerコマンドを実行してみる

docker ps

エラーが表示されずにコマンドの応答が返ってくればOK!

参考

参考にしたサイトはこちら

Raspberry Pi : nginxのインストールと設定を行う

Motivation

やはりサーバを立てたからには、なにかアクセスして使いたい!
というわけでnginxでもインストールしましょう。

nginxのインストール

sudo apt-get -y install nginx

多分この時点でnginxが起動しているはず。

起動していない場合には

sudo systemctl start nginx

を実行すれば良い

nginxの動作確認

ブラウザから

http://{ホスト名}.local

へアクセスしてみる。
nginxのwelcome画面が出れば成功。

indexのファイルを書き換える

サンプルで表示されるindexのファイルは以下にある

/var/www/html/index.nginx-debian.html

index.htmlページを書き換えてみる

sudo echo "<h1>ラズパイサーバです</h1>" > /var/www/html/index.html

ブラウザでアクセスすると書き換えたファイルが見れるようになります。

Proxy設定を入れてみる

Proxyする元がまだないが、Proxy設定を入れてみる(goでサーバ書いたときなどに使える)

設定ファイルを開く

sudo vi /etc/nginx/sites-available/default

location / {…} の下に以下のように記述する

location /hoge/ {
  proxy_pass  http://locahost:8000;
  rewrite /hoge/(.*)  $1  last;
}

まだアクセスしても何も見えないけどね。

Raspberry Pi : vimの設定を行う

Motivation

標準でインストールされている vim はイマイチなので、普通のvimをインストールしてSyntax Highlightなどがされるようにしたい。

vim-common, vim-tinyのアンインストール

sudo apt-get -y --purge remove vim-common vim-tiny

普通のvimnインストール

sudo apt-get -y install vim

かんたんですね。

Raspberry Pi : gitのインストールと設定を行う

Motivation

go getをする際にもgitが入っていないとだめなので、gitをインストールしなくてはなりませんね。

gitのインストール

sudo apt-get -y install git

ここまでで利用はできるのですが、一応gitの設定もしておく

globalユーザ情報の設定(Optional)

以下のコマンドを実行する

git config --global user.name "{nameを入力}"
git config --global user.email "{メアドを入力}"

ダブルクオートの中にname及びメールアドレスを入力します。{}も不要です

エディタをvimに(Optional)

git config --global core.editor 'vim -c "set fenc=utf-8"'

git diffをハイライトする(Optional)

git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto

こんなかんじ。

Raspberry Pi : goのインストールと設定を行う

Motivation

基本的には自分はgolangでプログラムを書くことが多いので、go入れておきます。

goのバイナリのダウンロード

ここ のページからアーキテクチャARM のものを選択しましょう。

  • ブラウザからリンクを右クリックしてURLをコピーします
  • 一応ホームディレクトリに移動し
cd ~
  • ファイルをダウンロードします
wget https://dl.google.com/go/go1.10.3.linux-armv6l.tar.gz # urlはコピーしたものを貼り付けましょう

goバイナリの展開

以下のコマンドで展開します

sudo tar zxvf go1.10.3.linux-armv6l.tar.gz -C /usr/local

goにパスを通す

以下のコマンドで .bashrc にPATH設定を出力する。
zshなど他シェルの場合には適宜ファイルを変更してください

echo -e '\n# Go settings\nexport GOHOME=/usr/local/go\nexport PATH=$PATH:$GOHOME/bin' >> ~/.bashrc

PATHを反映する

source ~/.bashrc

goコマンドを実行してみる

go

Go is a tool for managing Go source code. のような感じでメッセージが出ればokです。