iPadでSSHしてWeb開発する環境を構築する
- iPad(第三世代)を活用出来ていなかった
- 家で使っているMBAはデュアルディスプレイにしていて持ち運ぶのにケーブル外すの面倒
- 自由にいじれる環境が欲しかった
などなどの色々な思いが交錯した結果、さくらVPSの980円のプランを契約してiPadで開発出来る環境を整えてみた。
さくらVPSの契約とか初期設定はググれば色々出てくると思うので説明は割愛する。
以下ではサーバのセットアップが完了し、鍵ペアの作成、秘密鍵の取得が完了している前提で進める。
SSHクライアントアプリ
iPadからさくらVPSにSSH接続する為にSSHクライアントアプリを入れる。
無料のアプリで秘密鍵接続可能なSolarWinds Mobile Admin Clientというものも使ってみたけど、微妙だったので、700円するけどPromptを使うことにした。
Promptは秘密鍵を読み込むことが出来るし、動作も軽快なのでなかなか良い感じ。
接続設定
接続先ホスト、ユーザ名、パスワードを入力し、鍵マークから接続先サーバの秘密鍵を選択する。
秘密鍵は、PCと繋ぎiTunesからアプリに追加しておく。
これで接続ボタンをタッチすると、さくらVPSにSSH接続できる。
Keyboard
さすがにソフトウェアキーボードで開発するのはキツイので、iPadの蓋にもなるキーボードを買った。
LOGICOOL ウルトラスリム キーボードカバー TK710WH
- 出版社/メーカー: ロジクール
- 発売日: 2012/11/14
- メディア: Personal Computers
- 購入: 5人 クリック: 47回
- この商品を含むブログ (1件) を見る
- iPad+Keyboardにすると、MacBookAirより若干厚い
- 大きさは、まぁiPadそのまま
ちなみに、重さは MBA13インチ > iPad+Keyboard > MBA11インチ でした。
…MBA11インチの方が軽い
- 開いてセッティングするとこんな感じ
深く考えないでキーボード買ったけどUS配列だし、ESCキーが無かった…
一応ESCはCtrl+{ で代用出来る。
※結構の割合でキーボードにESCが無いので、ESCが無いと…って人は注意が必要
Web開発に欠かせないデバッグツール
iPadでもFirebugを利用する方法があった。
Martin Kool - How to use Firebug on your iPad and iPhone
1. 適当なページをブックマークする
2. ブックマークを"Firebug"にリネームし、以下のコードをURLに貼り付ける
javascript:(function(F,i,r,e,b,u,g,L,I,T,E){if(F.getElementById(b))return;E=F[i+'NS']&&F.documentElement.namespaceURI;E=E?F[i+'NS'](E,'script'):F[i]('script');E[r]('id',b);E[r]('src',I+g+T);E[r](b,u);(F[e]('head')[0]||F[e]('body')[0]).appendChild(E);E=new%20Image;E[r]('src',I+L);})(document,'createElement','setAttribute','getElementsByTagName','FirebugLite','4','firebug-lite.js','releases/lite/latest/skin/xp/sprite.png','https://getfirebug.com/','#startOpened');
3. Firebugを実行したいページでブックマークからFirebugを開くとBookmarkletとして実行できる。
まとめ
それなりに使える環境が出来上がった。
この環境で本気でWeb開発をするのはキツイ気がするけど、ちょっとしたリファクタリングや、テストの追加、環境改善には使えそう。
これからはもっとiPadを持って歩こう。
Amazon Linux AMI にbyobuを入れる
yum install byobu したらパッケージが見つからないって怒られたので、RPMパッケージを取得してきてインストールした。
CentOS 6 (RHEL 6) - EPEL i386からbyobuの最新版のrpmを取得してくる。
wget http://puias.math.ias.edu/data/puias/unsupported/6/i386/byobu-5.21-4.sdl6.noarch.rpm
※2013/4/5時点ではbyobu-5.21-4.sdl6.noarch.rpmが最新
sudo yum install byobu-5.21-4.sdl6.noarch.rpm
これでインストール完了。
前の記事で書いてように、タブを使いたいからRLoginを使い始めてみたけどbyobu入れればその機能は満たされる気がする。
ただ、RLoginでもputtyでもCtrlとかShiftとFunctionキーの組み合わせがうまく機能しない感じ。
.tmux.confいじってキーバインド設定するか。
WindowsのSSHクライアント【RLogin】でproxy経由でAWSにアクセスする
みなさん、SSHクライアントはなにを使っていますか?
WindowsユーザーだとputtyやTeraTermでしょうか。
私は会社では、タブや画面分割など機能が充実しているPoderosaを利用していました。
最近社内からAWSへアクセスする為の構成が変わり、HTTPプロキシサーバを経由してアクセスすることになったのですが、PoderosaにはHTTPプロキシの設定がありません。
そこで別のクライアントを探してみたところRLoginというクライアントがHTTPプロキシの設定も出来、画面分割も出来るようだったので、早速使ってみることにしました。
今回は、AWSに接続するまでの手順を例としてご紹介します。
※AWSのEC2インスタンスは作成済であるものとします
インストール
ここから対象のファイルをDLし、解凍後exeファイルを実行するだけ
設定
- 新規接続先の設定
- プロキシの設定 (Proxy Server)
これで設定完了です。
他にもフォントや背景色、KeepAliveの間隔など様々な設定が行えます。
自身では背景を少し透過させ、フォントをSource Code Proにしてみました。
Tabの切り替えはCtrl+Tabで行えます。
Ctrl+Rightで横分割、Ctrl+Downで縦分割で開けます。
Ctrl+Upで画面の入れ替えも可能です。
あと、なにげに便利なのがSFTPの機能がついている事です。
ちょっとファイルをアップロードしたい時なんかに重宝しそうです。
感想
同じ名前のUnixコマンドがあり、ググラビリティが低いです。
設定の豊富さ、拡張性から考えてももっと使われても良い気がします。
動作もそれなりに軽快で拡張性も高いので、興味があればみなさんも使ってみてはいかがでしょうか?
gitのproxy設定
gitのproxy設定。
- git config --global http.proxy http://your.proxy:8080
- git config --global https.proxy http://your.proxy:8080
ディレクトリ構造をドキュメント化するのに便利なtreeを入れてみた
brew install tree
- オプション
usage: tree [-adfghilnpqrstuvxACDFNS] [-H baseHREF] [-T title ] [-L level [-R]] [-P pattern] [-I pattern] [-o filename] [--version] [--help] [--inodes] [--device] [--noreport] [--nolinks] [--dirsfirst] [--charset charset] [--filelimit #] [<directory list>] -a All files are listed. -d List directories only. -l Follow symbolic links like directories. -f Print the full path prefix for each file. -i Don't print indentation lines. -q Print non-printable characters as '?'. -N Print non-printable characters as is. -p Print the protections for each file. -u Displays file owner or UID number. -g Displays file group owner or GID number. -s Print the size in bytes of each file. -h Print the size in a more human readable way. -D Print the date of last modification. -F Appends '/', '=', '*', or '|' as per ls -F. -v Sort files alphanumerically by version. -r Sort files in reverse alphanumeric order. -t Sort files by last modification time. -x Stay on current filesystem only. -L level Descend only level directories deep. -A Print ANSI lines graphic indentation lines. -S Print with ASCII graphics indentation lines. -n Turn colorization off always (-C overrides). -C Turn colorization on always. -P pattern List only those files that match the pattern given. -I pattern Do not list files that match the given pattern. -H baseHREF Prints out HTML format with baseHREF as top directory. -T string Replace the default HTML title and H1 header with string. -R Rerun tree when max dir level reached. -o file Output to file instead of stdout. --inodes Print inode number of each file. --device Print device ID number to which each file belongs. --noreport Turn off file/directory count at end of tree listing. --nolinks Turn off hyperlinks in HTML output. --dirsfirst List directories before files. --charset X Use charset X for HTML and indentation line output. --filelimit # Do not descend dirs with more than # files in them.
rails のプロジェクトで表示するとこんな感じ。
tree . ├── Gemfile ├── Gemfile.lock ├── README.rdoc ├── Rakefile ├── app │ ├── assets │ │ ├── images │ │ │ └── rails.png │ │ ├── javascripts │ │ │ └── application.js │ │ └── stylesheets │ │ └── application.css │ ├── controllers │ │ └── application_controller.rb │ ├── helpers │ │ └── application_helper.rb │ ├── mailers │ ├── models │ └── views │ └── layouts │ └── application.html.erb ├── config │ ├── application.rb │ ├── boot.rb │ ├── database.yml │ ├── environment.rb │ ├── environments │ │ ├── development.rb │ │ ├── production.rb │ │ └── test.rb │ ├── initializers │ │ ├── backtrace_silencers.rb │ │ ├── inflections.rb │ │ ├── mime_types.rb │ │ ├── secret_token.rb │ │ ├── session_store.rb │ │ └── wrap_parameters.rb │ ├── locales │ │ └── en.yml │ └── routes.rb ├── config.ru ├── db │ └── seeds.rb ├── doc │ └── README_FOR_APP ├── lib │ ├── assets │ └── tasks ├── log ├── public │ ├── 404.html │ ├── 422.html │ ├── 500.html │ ├── favicon.ico │ ├── index.html │ └── robots.txt ├── script │ └── rails ├── test │ ├── fixtures │ ├── functional │ ├── integration │ ├── performance │ │ └── browsing_test.rb │ ├── test_helper.rb │ └── unit ├── tmp │ └── cache │ └── assets └── vendor ├── assets │ ├── javascripts │ └── stylesheets └── plugins
日本語が文字化けしたときは
tree -N
で解決
rvmからrbenvに乗り換える
みんなrvmよりrbenvの方がイイヨって言うからrbenvに乗り換えることにした。
rvmのアンインストール
seppukuコマンドでrvmをアンインストールする。
なんか潔くて、乗り換えるのに好きになりそう。
rvm seppuku
次に、rvmに関する設定を.zshrc/.bashrc から削除
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"</pre>
とか
rbenvのインストール
brew install rbenv
ruby-buildのインストール
brew install ruby-build
.zshrcに環境変数を設定
export PATH=$HOME/.rbenv/bin:$PATH eval "$(rbenv init -)"
使い方
- インストール可能なRubyの一覧を確認する
rbenv install -l
- インストール
rbenv install 2.0.0-p0
- インストールしたRubyのバージョン一覧を確認
rbenv versions
- Rubyのバージョン切り替え
rbenv global 2.0.0-p0
- 特定ディレクトリでのRubyのバージョン切り替え
rbenv local 2.0.0-p0
- インストールしたRubyやGemのパスを通す
rbenv rehash
gemとか入れたらいちいちrehashしないといけないみたいなんだけど、それを自動化するgemがあるのでいれる。
gem install rbenv-rehash
あと、"rbenv"って打ちにくいので"re"にaliasを設定しておいた。
alias re=rbenv
参考
Ruby 2.0.0-p0インストール(Mac OS X 10.8.2) #Ruby #bundler - Qiita
rbenvのコマンドメモ