Ubuntuを入れたメモ *追記(rails サーバー立ち上がったぽい)

気になっていたUbuntu、日経LinuxにDVDがついていたので即買い、入れてみた。

必要なデータは外付HDDにコピーしているのでインストール。
日経Linuxとネットを少々参照しつつ、わりとすんなり終わる。

ちなみに、Windows8のころに4万円くらいで買ったacerのノートPCです。

Firefox(英語だったので日本語設定に変更)もLibreオフィスも入っているしOK!

次に、Rubyを入れる。

ネットからソースコードをダウンロード 2.4.1
sudo apt install yum ・・・これは必要だったのか?
そして

tar zxvf ruby-2.4.1.tar.gz
cd ruby-2.4.1
./configure
make

 

長い。

make test
sudo make install

$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]

 

OK!

続いて、Railsを入れたい。

 

$ sudo gem install rails
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

 翻訳

 

$ sudo gem install rails
エラー:ロードコマンド:install(LoadError)
そのようなファイルを読み込めません -  zlib
エラー:gemを実行中...(NoMethodError)
    定義されていないメソッド `invoke_with_build_args 'for nil:NilClass

zlibでしょうか。

sudo yum install -y zlib
有効なリポジトリーがありません。
 「yum repolist all」を実行し、所持するリポジトリーを参照してください。
 「yum-config-manager --enable <repo>」でリポジトリーを有効にできます。
$ yum repolist all
repolist: 0

 

 今日はギブアップ。

 

*追記 20170611

先日買ってた本「Bash on Ubuntu on Windows」を読む。Linux初心者なので今、役立っている。

・パッケージ情報の更新
 インターネット経由でリポジトリ(パッケージとその情報が蓄積されたインターネット上の倉庫)にあるパッケージ情報を取得してローカルデータベースが更新される。

 apt update

・システムを最新状態にアップデート
 apt upgrade


nodejs -v
sudo apt install nodejs でインストールできるよ言われる。

sudo apt install sqlite
sudo apt install ruby-railties

 

$ rails -v
Rails 4.2.7.1

とりあえず。Railsが入ったようだ。

 

Rails5でないことが気になりますが、

rails new 〜 でアプリも作成できました。

ですが、

rails server

で、ダメです。

rails server
/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- bundler/setup (LoadError)
    from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
    from /home/ユーザー名/data/railbook/config/boot.rb:3:in `<top (required)>'
    from bin/rails:3:in `require_relative'
    from bin/rails:3:in `<main>'

ギブ

 

*追記 20170612

 

rails new でアプリを作ったときのメッセージをよく読んでいなかった。


         run  bundle install --local
Could not find gem 'rails (= 4.2.7.1)' in any of the gem sources listed in your
Gemfile or available on this machine.
         run  bundle exec spring binstub --all
bundler: command not found: spring
Install missing gem executables with `bundle install`

翻訳

         バンドルインストールを実行する--local
あなたに記載されている宝石のソースのどれかで宝石のレール(= 4.2.7.1)を見つけることができませんでした。
Gemfileまたはこのマシンで使用可能です。
         バンドルを実行するexec spring binstub --all
bundler:コマンドが見つかりません:spring
不足しているgem実行ファイルを `bundle install`でインストールしてください

かろうじて最後の行がわかる。
やってみる。

Installing sqlite3 1.3.13 with native extensions
Using turbolinks-source 5.0.3
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/tmp/bundler20170612-5280-1ywk7ogjson-1.8.6/gems/json-1.8.6/ext/json/ext/generator
/usr/bin/ruby2.3 -r ./siteconf20170612-5280-10ce3o6.rb extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/include/ruby.h

extconf failed, exit code 1

Gem files will remain installed in
/tmp/bundler20170612-5280-1ywk7ogjson-1.8.6/gems/json-1.8.6 for inspection.
Results logged to
/tmp/bundler20170612-5280-1ywk7ogjson-1.8.6/extensions/x86_64-linux/2.3.0/json-1.8.6/gem_make.out

An error occurred while installing json (1.8.6), and Bundler cannot
continue.
Make sure that `gem install json -v '1.8.6'` succeeds before bundling.

 

となりまして。

 

$ gem install json -v '1.8.6'
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

 

続いて

 

:~/ドキュメント/ruby-2.4.1/ext/zlib$ ruby extconf.rb

 

$ make
make: *** 'zlib.o' に必要なターゲット '/include/ruby.h' を make するルールがありません.  中止.

 で、

$ sudo apt-get install ruby-dev

をして、makeしてもかわらず。。

 

**

実際の場所を見ながらMakefile書き換え

srcdir = .
topdir = /usr/local/include/ruby-2.4.0
top_srcdir = /usr/local/include/ruby-2.4.0

 

このtop〜を追記

あわせて、

zlib.o: $(top_srcdir)/ruby/ruby.h

このパスもじっさにあわせ。

 

makeするとできたようだ。

 make
compiling zlib.c
linking shared-object zlib.so

 

 いいのか。

 

gem install json -v '1.8.6'
ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
ERROR:  While executing gem ... (NoMethodError)
    undefined method `invoke_with_build_args' for nil:NilClass

 

だめ。泣きたい。

 

*追記20170613

この投稿もあとで整理しないと見にくくなってますが、メモとして。

嬉しいことに、rails sがちゃんと動いたようです。

 

以下に書く以外にもいろいろやったのですが、何がよかったのか。

・不足しているgem実行ファイルを `bundle install`でインストールしてください

これが出たので、

bundle install

ちなみに、

qiita.comこちらを読みますと、

 

bundle installを実行すると、railsは、gemfile.lockを元にgemのインストールを行います。この時、gemfile.lockに記述されていない、且つgemfileに記述されているgemがある場合、そのgemとそのgemに関連するgemをインストール後、gemfile.lockを更新します。

 

とのこと。

なんかエラーが書いてあるっぽい文章が出てくるのですが、最後に、

 

An error occurred while installing sqlite3 (1.3.13), and Bundler cannot
continue.
Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.

 

sudo apt-get install libsqlite3-dev
をしてから、もう一回bundle install

 

Bundle complete! 12 Gemfile dependencies, 56 gems now installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

 

なんかよさげ。

$ rails s

でサーバーがあがり、

 

 の画面が!

これは確実にOKでしょう。

 

でも、Pumaかと思ってたら

$ rails s
=> Booting WEBrick

だった。

WEBrickはなんだろ、、、タイムアウト