2011/11/21: よく使うUnixコマンド
現在地の絶対パスを出力
今いるディレクトリのパスを出力したい時。
環境変数の一覧を出力
.bashrcなどを編集してその結果を見たい場合は、一旦シェルからのログアウトが必要かも。
パーミッション情報などを出力
権限の一括変更
どこにインストールされているかを調べる
例:GEMの場所を調べたい場合
例:GEMでインストールされたRailsの場所を調べたい場合
mysqlのソケットの位置を確認
再帰的にカレントディレクトリ内のファイル(条件:*.rb)の権限変更
参考サイト
パッケージがインストールされているかの確認
シンボリックリンクの作成
ログ
Apache操作(さくらVPS)
vi操作
ローカルのポート関係
簡単にwebサーバーを起動
今いるディレクトリのパスを出力したい時。
pwd
環境変数の一覧を出力
.bashrcなどを編集してその結果を見たい場合は、一旦シェルからのログアウトが必要かも。
printenv
パーミッション情報などを出力
ls -l
ls -la
権限の一括変更
# 今いるディレクトリ以下全て(./*)に「全ユーザー(a)・読み取り(r)」権限を加える(+)。
chmod a+r ./*
どこにインストールされているかを調べる
例:GEMの場所を調べたい場合
which gem
例:GEMでインストールされたRailsの場所を調べたい場合
gem which rails
mysqlのソケットの位置を確認
mysql_config --socket
再帰的にカレントディレクトリ内のファイル(条件:*.rb)の権限変更
find ./ -name *.rb -type f -print | xargs chmod 755
参考サイト
パッケージがインストールされているかの確認
rpm -qa httpd
シンボリックリンクの作成
ln -s (リンクを張られるファイル名) (リンク名)
ログ
# messages
vi /var/log/messages
# secure(アタックされた履歴などがわかる)
vi /var/log/secure
Apache操作(さくらVPS)
# インストール
yum install httpd -y
# 自動起動設定ON
chkconfig –level 345 httpd on
# 設定ファイル編集
vi /etc/httpd/conf/httpd.conf
# 起動
/etc/init.d/httpd start
vi操作
# 挿入モード
i
# 終了
:q
# 編集内容を保存して終了
:wq
# 編集内容を破棄して終了
:w!
# 行削除
dd
# 全削除
:%d
# 検索
/
# n行目に移動(nを省略すると最終行へ)
[n]G
ローカルのポート関係
# 使用中のポートを調べる
nmap localhost
# 8000番ポートを使用しているプロセスを調べる
lsof -i:8000
# プロセスを終了させる([PID]に上で調べた番号を入れる)
kill [PID]
簡単にwebサーバーを起動
# カレントディレクトリを「http://localhost*8000」でサーバー起動
python -m SimpleHTTPServer
# カレントディレクトリを「http://localhost*8080」でサーバー起動
python -m SimpleHTTPServer 8080
※ 結局Rails3アプリケーションを動作させるところまではいけていません…。
-
前回までで、一応CORESERVERにRails3のインストールは完了しました。 rails new testapp などのようにしてアプリケーションの作成までは問題なくできたのですが、generateコマンドを実行しようとしたときにエラーが出てしまいました。
例えば、
としたときに、
というエラーが出ます。
この記事などでは、Gemfileに下記のような記述をしてbundleをし直すことで回避できるとありました。エラー文の中に「See https://github.com/sstephenson/execjs for a list of available runtimes.」とあったので、こちらを参照すると、ExecJSにはランタイムJavascript(RubyからJavascriptを実行するエンジンのようなもの?)が必要で、READMEの中にいくつか候補があり、そのなかにtherubyracerがありました。
※ 私の環境ではexecjsは、はじめからバンドルされていたので、2行目は省略しました。
Gemfileを上書き保存したら、下記を実行します。
が、私の環境ではbundle show で確認すると、きちんと2つともバンドルされているはずなのに同じエラーが出ました。「therubyracer」が、どうもうまく読み込めていないのかもしれません。他の記事を参考に、Node.jsを入れてみるとうまく行きました。
Node.jsのインストール
どうしてバンドルされているはずのtherubyracerが認識されていないのか、しっかり原因を突き止めてられておらずちょっと気持ち悪いのですが、とりあえずRails3はランタイムJavascriptが必要ということだけ頭に入れておいて、先に進みたいと思います。
参考:
"Could not find a JavaScript runtime" と Rails 3.1 起動に失敗する件
【追記】もしかしたら、※の部分で、2行目を省略しなかったらもしかしたらうまくいっていたのかも。依存関係を考えると実行順序が間違っていた可能性もあるかもしれない・・・。
-
前回までで、一応CORESERVERにRails3のインストールは完了しました。 rails new testapp などのようにしてアプリケーションの作成までは問題なくできたのですが、generateコマンドを実行しようとしたときにエラーが出てしまいました。
例えば、
rails generate model hoge title:string
としたときに、
'autodetect': Could not find a JavaScript runtime.
というエラーが出ます。
この記事などでは、Gemfileに下記のような記述をしてbundleをし直すことで回避できるとありました。エラー文の中に「See https://github.com/sstephenson/execjs for a list of available runtimes.」とあったので、こちらを参照すると、ExecJSにはランタイムJavascript(RubyからJavascriptを実行するエンジンのようなもの?)が必要で、READMEの中にいくつか候補があり、そのなかにtherubyracerがありました。
gem 'therubyracer'
gem 'execjs'
※ 私の環境ではexecjsは、はじめからバンドルされていたので、2行目は省略しました。
Gemfileを上書き保存したら、下記を実行します。
bundle install
が、私の環境ではbundle show で確認すると、きちんと2つともバンドルされているはずなのに同じエラーが出ました。「therubyracer」が、どうもうまく読み込めていないのかもしれません。他の記事を参考に、Node.jsを入れてみるとうまく行きました。
Node.jsのインストール
cd ~
mkdir lib/nodejs
cd tmp
git clone http://github.com/ry/node.git
cd node
export PREFIX=~/lib/nodejs
./configure
make
make install
echo "export PATH=~/lib/nodejs/bin:$PATH" >> ~/.bashrc
どうしてバンドルされているはずのtherubyracerが認識されていないのか、しっかり原因を突き止めてられておらずちょっと気持ち悪いのですが、とりあえずRails3はランタイムJavascriptが必要ということだけ頭に入れておいて、先に進みたいと思います。
参考:
"Could not find a JavaScript runtime" と Rails 3.1 起動に失敗する件
【追記】もしかしたら、※の部分で、2行目を省略しなかったらもしかしたらうまくいっていたのかも。依存関係を考えると実行順序が間違っていた可能性もあるかもしれない・・・。
2011/11/16: 【CORESERVERでRails】2. GemとRails
※ 結局Rails3アプリケーションを動作させるところまではいけていません…。
-
CORESERVERにgemをインストールします。最新のバージョンはこちらで確認してください。今回は、v1.8.11をインストールしました。
3行目でパッケージの取得用に tmp という一時的なディレクトリを作成していますが、既にある場合は次の行に進んでください。
最後の行で ~/lib/gem というフォルダへインストールしています。
これでインストール完了でした。
何故かパスを通さなくてもOKだったのが謎です・・・。もしかして、最初から入っていたのでしょうか。下記のコマンドでバージョンが確認できない場合は、こちらの記事に習って $HOME/lib/gem/ へのパスを通してみてください。
Railsをインストール。
これでCORESERVERにRails 3.1.1がインストールできました。
参考:
レンタルサーバでRuby on Railsをインストール
-
CORESERVERにgemをインストールします。最新のバージョンはこちらで確認してください。今回は、v1.8.11をインストールしました。
3行目でパッケージの取得用に tmp という一時的なディレクトリを作成していますが、既にある場合は次の行に進んでください。
最後の行で ~/lib/gem というフォルダへインストールしています。
ssh 【ログイン名】@【ホスト名】
mkdir lib/gem
mkdir tmp
cd tmp
wget http://production.cf.rubygems.org/rubygems/rubygems-1.8.11.tgz
tar zxvf rubygems-1.8.11.tgz
cd rubygems-1.8.11
ruby setup.rb --prefix=$HOME/lib/gem/
これでインストール完了でした。
何故かパスを通さなくてもOKだったのが謎です・・・。もしかして、最初から入っていたのでしょうか。下記のコマンドでバージョンが確認できない場合は、こちらの記事に習って $HOME/lib/gem/ へのパスを通してみてください。
gem -v
Railsをインストール。
gem install rails
これでCORESERVERにRails 3.1.1がインストールできました。
参考:
レンタルサーバでRuby on Railsをインストール
2011/11/16: 【CORESERVERでRails】1. Ruby
※ 結局Rails3アプリケーションを動作させるところまではいけていません…。
-
2011年11月現在、CORESERVERにはRuby1.8.5が標準でインストールされています。ただ、Rails3を動作させるためには1.8.7以上が必要なので、これをアップグレード(というか、別バージョンのRubyのインストールを)したいと思います。
手順としては、
1)SSHでリモートに接続
2)インストールしたいrubyのパッケージをダウンロード
3)インストール先を指定してインストール
4)パスを通す
です。
1)SSHでリモートに接続
2)インストールしたいrubyのパッケージをダウンロード
リモートのユーザのホームディレクトリにインストール先ディレクトリの作成し、パッケージを一時的に置くためのディレクトリ作成します。
tmpにrubyのパッケージを持って解凍します。
rubyの最新バージョンをこちらで確認して、バージョン名などは適宜変更してください。
3)インストール先を指定してインストール
解凍したディレクトリに移動して、インストール先に2で作成したディレクトリ(~/lib/ruby)を指定します。
インストールします。
~/lib/ruby を確認すると、いくつかのディレクトリが作成されているはずです。もし作成されていなければ、手順を確認してください。
OKでしたら、次の手順のためにユーザのホームディレクトリに移動します。
4)パスを通す
3でインストールした ~/lib/ruby/bin/ を環境変数として登録するために.bashrcに書き込みます。
FTPソフトでpublic_htmlディレクトリと同階層に .bashrc があるか確認してください。
なければ、そのままFTPソフトから新規ファイルを作成して「.bashrc」という名前にするか、
以下のコマンドでファイルを作成します。
次に、このファイルに内容を書き込みます。
.bashrc を確認すると、$HOMEや$PATHの部分がそれぞれの環境に応じて置き換えられた文字列が出力されているはずです。
例↓
これで、パスが通ったので、バージョンを確認してみましょう。
お目当てのバージョンが出力されていたら完了です。
参考:
CORESERVERでMechanize-0.9.3を動かす
CORESERVER に Ruby 1.8.7 をインストール
-
2011年11月現在、CORESERVERにはRuby1.8.5が標準でインストールされています。ただ、Rails3を動作させるためには1.8.7以上が必要なので、これをアップグレード(というか、別バージョンのRubyのインストールを)したいと思います。
手順としては、
1)SSHでリモートに接続
2)インストールしたいrubyのパッケージをダウンロード
3)インストール先を指定してインストール
4)パスを通す
です。
1)SSHでリモートに接続
ssh 【ログイン名】@【ホスト名】
2)インストールしたいrubyのパッケージをダウンロード
リモートのユーザのホームディレクトリにインストール先ディレクトリの作成し、パッケージを一時的に置くためのディレクトリ作成します。
mkdir lib
mkdir lib/ruby
mkdir tmp
tmpにrubyのパッケージを持って解凍します。
rubyの最新バージョンをこちらで確認して、バージョン名などは適宜変更してください。
cd tmp
wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p249.tar.gz
tar zxvf ruby-1.8.7-p249.tar.gz
3)インストール先を指定してインストール
解凍したディレクトリに移動して、インストール先に2で作成したディレクトリ(~/lib/ruby)を指定します。
cd ruby-1.8.7-p249
./configure -prefix=/virtual/【ログイン名】/lib/ruby
インストールします。
make
make install
~/lib/ruby を確認すると、いくつかのディレクトリが作成されているはずです。もし作成されていなければ、手順を確認してください。
OKでしたら、次の手順のためにユーザのホームディレクトリに移動します。
cd ~
4)パスを通す
3でインストールした ~/lib/ruby/bin/ を環境変数として登録するために.bashrcに書き込みます。
FTPソフトでpublic_htmlディレクトリと同階層に .bashrc があるか確認してください。
なければ、そのままFTPソフトから新規ファイルを作成して「.bashrc」という名前にするか、
以下のコマンドでファイルを作成します。
touch .bashrc
次に、このファイルに内容を書き込みます。
echo "export PATH=$HOME/lib/ruby/bin/:$PATH" >> .bashrc
.bashrc を確認すると、$HOMEや$PATHの部分がそれぞれの環境に応じて置き換えられた文字列が出力されているはずです。
例↓
export PATH=/virtual/【ログイン名】/lib/ruby/bin/:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/usr/local/mysql/bin:/usr/local/mysql/libexec:/usr/local/pgsql/bin
これで、パスが通ったので、バージョンを確認してみましょう。
ruby -v
お目当てのバージョンが出力されていたら完了です。
参考:
CORESERVERでMechanize-0.9.3を動かす
CORESERVER に Ruby 1.8.7 をインストール
2011/11/08: modx revo用の緯度経度入力TV
modx revo用にGoogleMapsAPIを使って管理画面から簡単に緯度経度の入力ができるTVインプットを作ったので、公開します。
地図上のマーカーをドラッグして任意の位置に移動すると、その場所の緯度経度がセットされます。GoogleMapsで使いやすいように、値は「緯度,軽度」のようにカンマ区切りの文字列でセットされます。また、住所やランドマーク名などを検索することができる検索機能もついています。
LatLngTV.zip
<インストール方法>
解凍後、以下の2つのファイルをそれぞれ指定のフォルダにアップロードするだけです。
latlng.php ↓
latlng.tpl ↓
管理画面のTVインプットのプルダウンメニューの中に「latlng」というのが追加されているはずなので選択してください。
そのうちにパッケージマネージャーからもインストールできるようにしようと思います。今、最初のデフォルトの位置がソースコードいじらないと変えられないので、管理画面からも設定できるようにしたいです。
地図上のマーカーをドラッグして任意の位置に移動すると、その場所の緯度経度がセットされます。GoogleMapsで使いやすいように、値は「緯度,軽度」のようにカンマ区切りの文字列でセットされます。また、住所やランドマーク名などを検索することができる検索機能もついています。
LatLngTV.zip
<インストール方法>
解凍後、以下の2つのファイルをそれぞれ指定のフォルダにアップロードするだけです。
latlng.php ↓
core/model/modx/processors/element/tv/renders/mgr/input/
latlng.tpl ↓
manager/templates/default/element/tv/renders/input/
管理画面のTVインプットのプルダウンメニューの中に「latlng」というのが追加されているはずなので選択してください。
そのうちにパッケージマネージャーからもインストールできるようにしようと思います。今、最初のデフォルトの位置がソースコードいじらないと変えられないので、管理画面からも設定できるようにしたいです。