.bash_historyでRuby on Rails5インストール作業をプレイバック。 [プログラミング]
LXCにUbuntu16.04入れて、適当に一般ユーザー作る。そこから。
2.3とか結構新しいバージョンが入ってる。ver.2に入るころはかなり手を抜いていたのにね。面倒くさいからrbenvとか使わない。
あ~rubygem一緒に入るっぽい。
これで一気にRailsが入ると思ったらどっこい。
エラーが出た。
まだ足りないらしくググって見る。nokogiriが悪いっぽいが。
コンパイルできないとか何とか
Ubuntuのリポジトリサーバが死んでいるらしくファイルを取ってこれない。UbuntuのAPTサーバはたまに死んでいて、一日経つと復活していたりする。気長に待てないよなぁ。
仕方がないから他のものを入れる。
elinksにおいてはずっと前に使ったっきりだから、Railsの動作確認に使えるかどうか良く分かってない。というか、まだRails入ってないから確かめようがない。
インストール作業ばっかりなんだから、わざわざ一般ユーザーでsudoする必要なかったなぁ。まぁ今度から環境設定のときは、コンテナのルートユーザーまんまで作業しよう。
あ~凡ミス。
忘れてた。Ubuntuのメンテナさん疑ってごめんw。
すんなり通る。
でもrailsは同じエラーを出していてもう一回build-essentialを入れたらコンパイルし始めた。なんでgcc入らんかったんやろ。
上手くいくと思ったら、sudoの実行時にコケる。
sudo: no tty present and no askpass program specified
~/.bashrcに
alias sudo='sudo -S'
してあるから大丈夫だと思ったのに、他のスクリプト内だと有効じゃないみたい。なんか良く分からないな。LXCコンテナは色々と面倒。wettyだからnode.jsの設定でssh -tとか何とかしたほうが良さそうだ。
http://fishrimper.blogspot.jp/2012/09/ssh-sudo.html
やったけど上手くいかず。
http://qiita.com/narumi_/items/77002a12d62585da1fbe
やっぱり根本からやらんとあかんらしい。
でも問題となるところが違っていた。
まず、家に帰ってssh -t -t でつなぐようにWettyを設定してみたがダメでした。
/etc/sudoer に書いてみてもダメでした。
もしやと思い、家なので直でsshをつないでrails newを行っても
sudo: no tty present and no askpass program specified
が同じように出るので、sudoでrails newを動かしたらすんなり入って、前記のエラーが出なくなった。あんまりsudoで動かしたくないのだが仕方ない(メッセージで管理者権限で動かすなみたいなのが出てくるし)。
その後は、Sqlite関係のエラーが出るので、
あたりを入れたと思う。再度rails newで最後まで通る。
rails sで動かそうとするととexecjsあたりのエラーが出るので
で解決。これで動くと思った。何か忘れている気もするが大体こんなもの。
LXCを抜けてホストOSに戻ってきたら、PostgreSQLが動いてた。ps axで普通に確認できた。コンテナでインストールされているものがデーモンとして動いてるのっていいのかな。ためしにコンテナを止めてみる。あ、Postgresも止まった。なんか良く分からないけど、コンテナで動いていてもホストOS側で見えるらしい。普通のプロセスは見えないのが普通だと思うけど、デーモンだからなのかもしれない。でも、なんか気持ち悪いな。コンテナでメモリ仕切っている意味ってあるのかな。
にしても、LXCコンテナの中でtmux使えないのな。どこかでUbuntu17.04を入れるとできるよ、みたいなことを書かれていた気がするが、debファイルででも入れられないものか。ちょっとしたところで、LXCで問題が出たりしていることも少なくないかも、気づいてないだけで。
sudo apt install ruby
ruby -v
2.3とか結構新しいバージョンが入ってる。ver.2に入るころはかなり手を抜いていたのにね。面倒くさいからrbenvとか使わない。
gem -v
あ~rubygem一緒に入るっぽい。
これで一気にRailsが入ると思ったらどっこい。
sudo gem install rails
エラーが出た。
sudo apt install ruby-dev build-essential
まだ足りないらしくググって見る。nokogiriが悪いっぽいが。
sudo gem install nokogiri
コンパイルできないとか何とか
sudo apt install zlib1g-dev
Ubuntuのリポジトリサーバが死んでいるらしくファイルを取ってこれない。UbuntuのAPTサーバはたまに死んでいて、一日経つと復活していたりする。気長に待てないよなぁ。
仕方がないから他のものを入れる。
sudo apt install postgresql
sudo apt install elinks
elinksにおいてはずっと前に使ったっきりだから、Railsの動作確認に使えるかどうか良く分かってない。というか、まだRails入ってないから確かめようがない。
インストール作業ばっかりなんだから、わざわざ一般ユーザーでsudoする必要なかったなぁ。まぁ今度から環境設定のときは、コンテナのルートユーザーまんまで作業しよう。
あ~凡ミス。
sudo apt update && sudo apt upgrade
忘れてた。Ubuntuのメンテナさん疑ってごめんw。
すんなり通る。
sudo apt install zlib1g-dev
でもrailsは同じエラーを出していてもう一回build-essentialを入れたらコンパイルし始めた。なんでgcc入らんかったんやろ。
rails new hoge
上手くいくと思ったら、sudoの実行時にコケる。
sudo: no tty present and no askpass program specified
~/.bashrcに
alias sudo='sudo -S'
してあるから大丈夫だと思ったのに、他のスクリプト内だと有効じゃないみたい。なんか良く分からないな。LXCコンテナは色々と面倒。wettyだからnode.jsの設定でssh -tとか何とかしたほうが良さそうだ。
http://fishrimper.blogspot.jp/2012/09/ssh-sudo.html
shopt -s expand_aliases
やったけど上手くいかず。
http://qiita.com/narumi_/items/77002a12d62585da1fbe
やっぱり根本からやらんとあかんらしい。
でも問題となるところが違っていた。
まず、家に帰ってssh -t -t でつなぐようにWettyを設定してみたがダメでした。
/etc/sudoer に書いてみてもダメでした。
もしやと思い、家なので直でsshをつないでrails newを行っても
sudo: no tty present and no askpass program specified
が同じように出るので、sudoでrails newを動かしたらすんなり入って、前記のエラーが出なくなった。あんまりsudoで動かしたくないのだが仕方ない(メッセージで管理者権限で動かすなみたいなのが出てくるし)。
その後は、Sqlite関係のエラーが出るので、
sudo apt install sqlite3 libsqlite3-dev
あたりを入れたと思う。再度rails newで最後まで通る。
rails sで動かそうとするととexecjsあたりのエラーが出るので
sudo apt install nodejs
で解決。これで動くと思った。何か忘れている気もするが大体こんなもの。
LXCを抜けてホストOSに戻ってきたら、PostgreSQLが動いてた。ps axで普通に確認できた。コンテナでインストールされているものがデーモンとして動いてるのっていいのかな。ためしにコンテナを止めてみる。あ、Postgresも止まった。なんか良く分からないけど、コンテナで動いていてもホストOS側で見えるらしい。普通のプロセスは見えないのが普通だと思うけど、デーモンだからなのかもしれない。でも、なんか気持ち悪いな。コンテナでメモリ仕切っている意味ってあるのかな。
にしても、LXCコンテナの中でtmux使えないのな。どこかでUbuntu17.04を入れるとできるよ、みたいなことを書かれていた気がするが、debファイルででも入れられないものか。ちょっとしたところで、LXCで問題が出たりしていることも少なくないかも、気づいてないだけで。
タグ:Rails
コメント 0