CentOS6.7にpassengre+sinatra

CentOS6.7にpassengre+sinatra
を、なるべく、一括でできるようにまとめてみました

必要なアプリをインストール

yum -y install git gcc gcc-c++ libcurl-devel httpd httpd-devel openssl-devel readline-devel zlib-devel
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
mkdir ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git
rbenv install 2.2.5
rbenv shell 2.2.5
gem install bundler
cd
mkdir sina
cd sina
mkdir vendor
mkdir vendor/bundle
mkdir public
mkdir tmp
touch tmp/always_restart.txt
bundle init
echo 'gem "sinatra"' >> Gemfile
echo 'gem "passenger"' >> Gemfile
bundle install --path vendor/bundle
bundle exec passenger-install-apache2-module
・結果表示
Here's what you can expect from the installation process:
 
 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.
  :
  :
Press Enter to continue, or Ctrl-C to abort.

1を、選択
・結果表示
Use <space> to select.
If the menu doesn't display correctly, press '!'
 
 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor

entrで、進んで行く
bundle exec passenger-install-apache2-module --snippet >> /etc/httpd/conf/httpd.conf
echo "DocumentRoot /root/sina/public" >> /etc/httpd/conf/httpd.conf
echo "#coding: utf-8"    >app.rb
echo "require 'sinatra'" >>app.rb
echo "get '/' do"        >>app.rb
echo "'Hello World'"     >>app.rb
echo "end"               >>app.rb
echo "require File.expand_path(File.dirname(__FILE__)) + '/app'"  >config.ru
echo "run Sinatra::Application"                                   >>config.ru
/etc/rc.d/init.d/httpd restart
getenforce
Enforcing

setenforce 0 

getenforce
Permissive
curl 'http://localhost/'
chmod o+x "/root"

curl 'http://localhost/'
Hello World

■確認
いまく、いかない時には
以下の内容を確認してください。

path

cd
cd sina
pwd

・結果表示
/root/sina

ファイルの内容1

cd
cd sina
ls
・結果表示
Gemfile  Gemfile.lock  app.rb  config.ru  public  tmp  vendor

ファイルの内容2

ls tmp
・結果表示
always_restart.txt

appの内容

cat app.rb
・結果表示
#coding: utf-8
require 'sinatra'
get '/' do
'Hello World'
end

config.ruの内容

cat config.ru
・結果表示
require File.expand_path(File.dirname(__FILE__)) + '/app'
run Sinatra::Application

httpd.confの内容

cat /etc/httpd/conf/httpd.conf
・結果表示(終わりの行)
  :
#</VirtualHost>
DocumentRoot /root/sina/public
LoadModule passenger_module /root/sina/vendor/bundle/ruby/2.2.0/gems/passenger-5.0.28/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /root/sina/vendor/bundle/ruby/2.2.0/gems/passenger-5.0.28
  PassengerDefaultRuby /root/.rbenv/versions/2.2.5/bin/ruby
</IfModule>

SELinuxの内容

getenforce
・結果表示
Permissive

/rootの権限

ls /root -l
・結果表示
drwxr-xr-x. 6 root root  4096  6月 22 09:17 2016 sina

conohaのクラウド centOS 6.7に、sinatoraをインスツール

Ubuntu16でRubyを使ってみる

を、元に、centOS 6.7にsinatraをインスツールしてみた。

■gitのインストール
gitのインストールしているか確認

git --version
・結果表示
-bash: git: コマンドが見つかりません

gitのがないのでインストール

yum -y install git

git --version
・結果表示
git version 1.7.1

■benv のインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bashrc

echo 'eval "$(rbenv init -)"' >> ~/.bashrc

シェルを再起動

source ~/.bashrc

インストールの確認

type rbenv
・結果表示
rbenv is a function
rbenv () 
{ 
    local command;
    command="$1";
    if [ "$#" -gt 0 ]; then
        shift;
    fi;
    case "$command" in 
        rehash | shell)
            eval "$(rbenv "sh-$command" "$@")"
        ;;
        *)
            command rbenv "$command" "$@"
        ;;
    esac
}

■ruby-build のインストール

mkdir ~/.rbenv/plugins
cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git

■ruby のインストール
インストール可能な、最新バージョンを確認

rbenv install -l

2.2.5をインストール

rbenv install 2.2.5

エラーになった

・結果表示
:
checking for gcc... no

gccがないので、の追加

yum -y install gcc

再度

rbenv install 2.2.5

エラーになった

・結果表示
:
Try running <code>yum install -y openssl-devel readline-devel zlib-devel</code> to fetch missing dependencies.

指示にしたが、追加

yum install -y openssl-devel readline-devel zlib-devel

再度

rbenv install 2.2.5

インストールできた

インストールした、Rubyのバージョンを確認

rbenv shell 2.2.5
ruby -v

ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-linux]

■bundler のインストール

rbenv shell 2.2.5
gem install bundler

■sinatra のインストール

プロジェクト用エリア(フォルダ:sina)を作成

cd
mkdir sina
cd sina

Gemfileを作成

bundle init

Gemfileにgem ‘sinatra’を追加

cat Gemfile
echo 'gem "sinatra"' >> Gemfile
cat Gemfile
mkdir vendor
mkdir vendor/bundle

bundle で、Gemfileを実行

bundle install --path vendor/bundle

■サンプルAPの作成
app.rbを作成

echo "#coding: utf-8"    >app.rb
echo "require 'sinatra'" >>app.rb
echo "get '/' do"        >>app.rb
echo "'Hello World'"     >>app.rb
echo "end"               >>app.rb

cat app.rb

■実行確認

bundle exec ruby app.rb

INFO  WEBrick::HTTPServer#start: pid=30947 port=4567

別の端末を開く

curl 'http://localhost:4567/'
・結果表示
Hello World

できた

■passengerで接続

■Gemでpassengerをインストール
Gemfileにgem ‘passenger’を追加

cd
cd sina

cat Gemfile
echo 'gem "passenger"' >> Gemfile
cat Gemfile

rbenv shell 2.2.5
bundle install

■passenger-install-apache2-moduleをインストール

bundle exec passenger-install-apache2-module
・結果表示
Here's what you can expect from the installation process:

 1. The Apache 2 module will be installed for you.
 2. You'll learn how to configure Apache.
 3. You'll learn how to deploy a Ruby on Rails application.
  :
  :
Press Enter to continue, or Ctrl-C to abort.

1を、選択

・結果表示
Use <space> to select.
If the menu doesn't display correctly, press '!'

 ‣ ⬢  Ruby
   ⬢  Python
   ⬡  Node.js
   ⬡  Meteor

entrで、進んで行く

エラーになるので、一度中断し
指摘された、不足のアプリケーションを追加

yum -y install gcc-c++ libcurl-devel httpd httpd-devel

再度

bundle exec passenger-install-apache2-module

インストールできた

apacheに設定を追加

bundle exec passenger-install-apache2-module --snippet >> /etc/httpd/conf/httpd.conf
echo "DocumentRoot /root/sina/public" >> /etc/httpd/conf/httpd.conf

アプリケーション設置用エリアを作成

mkdir /root/sina/public
mkdir /root/sina/tmp

config.ruを作成

echo "require File.expand_path(File.dirname(__FILE__)) + '/app'"  >/root/sina/config.ru
echo "run Sinatra::Application"                                   >>/root/sina/config.ru

アプリケーション修正時の自動リロードを指定

touch /root/sina/tmp/always_restart.txt

apacheの設定ファイルの整合性を確認

apachectl configtest

Syntax OKなので、起動してみる

・結果表示
httpd: apr_sockaddr_info_get() failed for 133-130-108-243
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
Syntax OK

apacheを起動

/etc/rc.d/init.d/httpd restart

動作を確認してみる

curl 'http://localhost/'
・結果表示
  :
<p>You don't have permission to access /
on this server.</p>
  :

権限がまずいとのこと
権限を変更

chmod o+x "/root"

再度を確認してみる

curl 'http://localhost/'
・結果表示
Hello World

うまくいった。。

Apacheー>Passengerー>Sinatra ができた。

Ubuntu16でvisualrubyをインストール

Ubuntuの環境で、GUIアプリケーションを
Rubyで開発するために
visualrubyをインストールしてみた

visualrubyは、フォームをGUIで、作成し、プログラムを開発するものです
VisualBaice,VisualStudioをイメージしてもらうといいでしょう

HP
http://visualruby.net

■ゼロベースからの手順をまとめる
1,Git のインストール
2.rbenv のインストール
3.ruby-build のインストール
4.ruby のインストール
5.bundler のインストール
6.visualruby のインストール
7.visualruby の起動、サンプル実行
8.glade のインストール
9.visualrubyからのglade起動設定
10.新規プログラム作成

1から5は
「Ubuntu16でRubyを使ってみる」

Ubuntu16でRubyを使ってみる


と、重複しますが、手順をわかりやすくするため
再度掲載しました

1.Git のインストール

sudo apt-get update
sudo apt-get install git

もし、
/var/lib/apt/lists/ をロックできません
/var/lib/apt/dpkg/ をロックできません
と、表示された場合は

sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock

2.rbenv のインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

シェルを再起動

source ~/.bashrc

インストールの確認

type rbenv


「rbenv は関数です」と表示されればインストール完了

3.ruby-build のインストール

mkdir ~/.rbenv/plugins

cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git

4.ruby のインストール
インストール可能な、最新バージョンを確認

rbenv install -l

2.2.5をインストール

rbenv install 2.2.5

エラーになった

:
Try running `apt-get install -y libssl-dev libreadline-dev zlib1g-dev

とのことなので、

sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

の、のち、再度

rbenv install 2.2.5

を、行う

インストールされたRubyのバージョンを確認

ruby -v

5.bundler のインストール

rbenv shell 2.2.5
gem install bundler

6.visualruby のインストール

プロジェクト用エリア(フォルダ:vruby)を作成

cd
mkdir vruby
cd vruby

Gemfileを作成

bundle init

vruby/Gemfile
という、ファイルが作成される
エディタで、Gemfileを開
gem ‘visualruby’を追加
する

source "https://rubygems.org"
gem 'visualruby'

# gemを入れるディレクトリを作成

mkdir vendor
mkdir vendor/bundle

bundle で、Gemfileを実行

bundle install --path vendor/bundle

7.visualruby の起動、サンプル実行
visualrubyを起動する

cd
cd vruby
rbenv shell 2.2.5
bundle exec vr

../example/all_widgets
を選択し「open」を、押下
メニューの「Run」を、押下し
アイアらしい
新しい画面が開く事を確認する
右上の✕、押下で終了
File>Quitで終了

8.glade のインストール
フォームをデザインするツールを「glade」をインスツールする
ブラウザで、
Ubuntu、パッケージサイトを開く

http://packages.ubuntu.com/ja/precise/glade-gtk2

から、glade-gtk2をダウンロード
amd64ならば
http://packages.ubuntu.com/ja/precise/amd64/glade-gtk2/download
から、ダウンロード
端末から、ダウンロードフォルダーに移動してインストール

cd
cd ダウンロード 
sudo dpkg -i glade-gtk2_3.8.0-0ubuntu4_amd64.deb

libgladeui-1-11がないと言われるので

sudo apt install libgladeui-1-11

リストにないといわれる場合(下記エラーが表示)

   :
   :
E: パッケージ 'libgladeui-1-11' はインストール候補ではありません

/etc/apt/sources.list
に、
deb http://us.archive.ubuntu.com/ubuntu vivid main universe
を、追加する

sources.listの編集は、root権限が必要
viの使用に慣れているなら
sudo cd /etc/apt/
sudo vi sources.list
で、先頭に
deb http://us.archive.ubuntu.com/ubuntu vivid main universe
を、追加

GUIで行うなら
sudo nautilus
で、root権限でnautilusを起動し
/etc/apt/sources.list
を、選択し、geditにて、開き
deb http://us.archive.ubuntu.com/ubuntu vivid main universe
を、追加し、上書き保存し、nautilusを終了

sudo apt-get update

もし、
/var/lib/apt/lists/ をロックできません
と、表示された場合は

sudo rm /var/lib/apt/lists/lock
sudo rm /var/lib/dpkg/lock

再度、インストール

sudo apt-get update
sudo apt install libgladeui-1-11
sudo dpkg -i glade-gtk2_3.8.0-0ubuntu4_amd64.deb

にて、インストールができればOK

アプリケーション検索で
glade
を検索
Glade3インターフェース・デザイナという内容で登録されていれば
起動確認する

9.visualrubyからのglade起動設定
visualrubyを起動する

cd
cd vruby
rbenv shell 2.2.5
bundle exec vr

サンプルの
../example/listview
を選択し「Open」を、押下

Tool>GlobalSetting
を、選択
GladeCommandLine:
を、
「glade-gtk2」
を、選択し、「Try」で起動を確認
起動したgladeを、閉じ
設定画面を「Save」で終了する

左の、メニューTreeの
binの▶をクリックし展開し
gladeの▶をクリックし展開し
SongListVeiwGui.gladeをダブルクリックする
gladeが起動する
右サイドツリービューをクリックし、展開していく
Window1>hbox1>vBox1>hbox2>label1
まで、開きlabel1を選択する
プロパティのラベルを一部変更してみる

<big>ListView・・・・
→
<big>ーーーListView・・・・

保存を押して(ファイル>保存)、gladeを終了する
VisualRuby側で
「Run」
で、起動した時、デザインの修正内容が
反映していることを確認する

10.新規プログラム作成

File>NewProjet
で、新しいプロジェクトを作成する
プロジェクト名を「test001」として
「Create」を押す

「Run」により、起動を確認する
「Hello World」
のボタンを、押すと、表示が変わることを
動作を確認する

開いた画面を閉じ、プログラムを終了する

gladeの▶をクリックし展開し
デザインを変更する

ボタンを追加する

デザインを保存し終了する

MyClass.rb
を、修正し保存する

def before_show()
 @button1 = "こんにちは"
 @button2 = "世界"
end	
def button1__clicked(*args)
 @builder["button1"].label = @builder["button1"].label == "Hello World" ? "Goodbye World" : "Hello World"
 @builder["button2"].label = @builder["button1"].label == "Hello World" ? "Goodbye World" : "Hello World"
end
def button2__clicked(*args)
 @builder["button1"].label = "その1"
 @builder["button2"].label = "その2"
end

保存し、
プログラムを起動し、動作を確認する

その他

エディットボックスの場合
名前はentry番号となり
初期値は

def before_show()
 @entry1 = "こんにちは 世界1"
 @entry2 = "こんにちは 世界2"
end	

エディットボックス変更のイベントは

def entry1__changed(*args)
 @builder["entry2"].text = @builder["entry1"].text
end	

こんな感じ
上記の場合、エディットボックスの1,2の
初期値をそれぞれ、 “こんにちは 世界1”,”こんにちは 世界2”
とし、
entry1を変更すると、entry2も同じ内容になる

■注意点
1,VisualRubyとGTD+のバージョンと、gladeのバージョンの相性に注意
   → glade-gtk2_xx
2,Ubuntu16でのアプリケーションのインスツール設定
   → サードパーティがインスツールできない
3,gladeの使い勝手
   → VisualC#などのUiとは異なり、Itemドラッグ移動(微調整)はできない
     指定した箱の中に設置
     コンテナで、設置できる枠を作り、その枠の中に、コントロールを入れる

(慣れると、これも便利かも)

■参考
http://visualruby.net/index.html
https://github.com/Beagle123/visualruby

MySQLの現存するテーブルからcreate table文を起こす

既存のデータベースから、テーブルを作成するCREATE TABLE文を取得には

mysqlのコマンドの中で

SHOW CREATE TABLE テーブル名

で、できる

テーブルを追加する場合、既存のテーブルのCREATE TABLE文を取得して
それを、参考にし、新しいテーブル用のCREATE TABLE文を作ると便利である

また、データベース全体のCREATE TABLE文を取得するには
コマンドプロンプトから

mysqldump -u ユーザ名 -p --no-data データベース名

で、
パスワードを入力し、表示されます
ファイルに出力する場合には

mysqldump -u ユーザ名 -p --no-data データベース名 >dump.sql

可能です

Ubuntu16でsinatraで、削除の機能を追加

項目の削除の機能を追加する

手順は

1,削除を行う行を指定する釦を設置する
2,削除を行う処理を追加する
3,動作を確認する

となります

1,削除を行う行を指定する釦を設置する
各行に釦を設置し、行を指定するIDを埋め込む
app.rb
に、釦のフォームを設置する

<form method="post" action="del">
 <td><input type="submit" value="削除"></td>
  <input type="hidden" name="id" value="<%= us.id %>">
  <input type="hidden" name="_method" value="delete">
 </form>

get ‘/’ do
を以下にする

get '/' do
@usrs = User.all
erb %{
<html>
<head>
  <meta charset="utf-8" />
  <title>Test</title>
</head>
<body>
  <table border>
    <tr>
      <th>名前</th>
      <th>メールアドレス</th>
    </tr>
    <% @usrs.each do |us| %>
    <tr>
      <td><%= us.id %></td>
      <td><%= us.username %></td>
      <td><%= us.mailaddres %></td>
 <form method="post" action="del">
 <td><input type="submit" value="削除"></td>
  <input type="hidden" name="id" value="<%= us.id %>">
  <input type="hidden" name="_method" value="delete">
 </form>
    </tr>
 <% end %>
<form method="post" action="new">
 <tr>
  <td><input type="submit" value="登録"></td>
  <td><input type="text" name="username"></td>
  <td><input type="text" name="mailaddres"></td>
 </tr>
</form>
</table>
</body>
</html>
}
end

で、起動し削除釦を押してみる

cd
cd sina
rbenv shell 2.2.5
bundle exec ruby app.rb

ブラウザ(Firfox)から
http://localhost:4567/

エラーとして

Try this:
delete '/del' do
  "Hello World"
end

と、表示される
delete ‘/del’ do
を追加する
2,削除を行う処理を追加する

delete '/del' do
  usrs = User.find(params[:id])
  usrs.destroy
  redirect '/'
end

修正内容を追加すると

#coding: utf-8
 
require 'active_record'
require 'mysql2'
require 'sinatra'
require 'sinatra/reloader'
 
# Import files for database
ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection(:development)
 
class User < ActiveRecord::Base
end
 
get '/' do
@usrs = User.all
erb %{
<html>
<head>
  <meta charset="utf-8" />
  <title>Test</title>
</head>
<body>
  <table border>
    <tr>
      <th>名前</th>
      <th>メールアドレス</th>
    </tr>
    <% @usrs.each do |us| %>
    <tr>
      <td><%= us.id %></td>
      <td><%= us.username %></td>
      <td><%= us.mailaddres %></td>
      <form method="post" action="del">
      <td><input type="submit" value="削除"></td>
       <input type="hidden" name="id" value="<%= us.id %>">
       <input type="hidden" name="_method" value="delete">
       </form>
    </tr>    
</tr>
    <% end %>
<form method="post" action="new">
 <tr>
  <td></td>
  <td><input type="text" name="username"></td>
  <td><input type="text" name="mailaddres"></td>
  <td><input type="submit" value="登録"></td>
 </tr>
</form>
</table>
</body>
</html>
}
end

post '/new' do
  usr = User.new
  usr.username = params[:username]
  usr.mailaddres = params[:mailaddres]
  usr.save
  redirect '/'
end

delete '/del' do
  usrs = User.find(params[:id])
  usrs.destroy
  redirect '/'
end

となりる

3,動作を確認する
app.rbを起動し

cd
cd sina
rbenv shell 2.2.5
bundle exec ruby app.rb

ブラウザ(Firfox)から
http://localhost:4567/
により、削除釦を押してみる

対象項目の削除ができた

参考
・Sinatra+ActiveRecord+SQLite3で,軽量なWeb-DB連携例

Ubuntu16でsinatraで、追加の機能を追加

前回のプログラムに

追加の機能を追加する
手順は

1,自動リロードの追加
2,追加項目入力用フォームの追加
3,テータ追加処理の追加
となりる

1,自動リロードの追加
開発効率向上のために自動リロードの追加する

sinatra-contrib
の追加(インストール)と

app.rbへの

require 'sinatra/reloader'

の追加となる

sina/Gemfile

gem 'sinatra-contrib'

を追加し
bundleにて、インストール

cd
cd sina
rbenv shell 2.2.5
bundle install --path vendor/bundle

app.rbを修正

require 'sinatra/reloader'

を追加

実行
bundle exec ruby app.rb
ブラウザ(Firfox)から
http://localhost:4567/

ブラウザ、起動後
app.rb
を修正し、ブラウザ、再表示で、変更されることを確認

2,追加項目入力用フォームの追加
追加のフォームを追加する


追加したものは

#coding: utf-8
 
require 'active_record'
require 'mysql2'
require 'sinatra'
require 'sinatra/reloader'
 
# Import files for database
ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection(:development)
 
class User < ActiveRecord::Base
end
 
get '/' do
@usrs = User.all
erb %{
<html>
<head>
  <meta charset="utf-8" />
  <title>Test</title>
</head>
<body>
  <table border>
    <tr>
      <th>名前</th>
      <th>メールアドレス</th>
    </tr>
    <% @usrs.each do |us| %>
    <tr>
      <td><%= us.id %></td>
      <td><%= us.username %></td>
      <td><%= us.mailaddres %></td>
    </tr>
    <% end %>
<form method="post" action="new">
 <tr>
  <td><input type="submit" value="登録"></td>
  <td><input type="text" name="username"></td>
  <td><input type="text" name="mailaddres"></td>
 </tr>
</form>
</table>
</body>
</html>
}
end

再表示して、変更を確認する

登録ボタンを押して見る

エラー画面になる
データの追加処理
post ‘/new’
を、追加する

3,テータ追加処理の追加
app.rb
に、

post '/new' do
  usr = User.new
  usr.username = params[:username]
  usr.mailaddres = params[:mailaddres]
  usr.save
  redirect '/'
end

を追加

行が追加されることを確認してみる

Mysql2::Error: Field 'created_at' doesn't have a default value: INSERT INTO <code>users</code> (<code>username</code>, <code>mailaddres</code>, <code>updated_at</code>) VALUES ('kon', 'kon@xxx.com', '2016-05-09 05:11:22')

エラーになる
updated_atは作ってくれるが
created_atは作ってくれないようである

DB側で、自動で、作成するように変更

ALTER TABLE users CHANGE created_at created_at datetime NOT NULL default current_timestamp;

mysqlのバージョンによる依存性の可能性があるため、確認

mysql --version
mysql  Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using  EditLine wrapper

5.7.12
の場合、うまく行った

参考
・【Ruby】Sinatraで、速攻でWebサイトを公開するための環境構築
・Sinatra+ActiveRecord+SQLite3で,軽量なWeb-DB連携例
・MySQL5.6で作成日時と更新日時を自動で設定してみるAdd Star

Ubuntu16でsinatraとactiverecordとMysqlを使ってみる

前回、Ubuntu16に、sinatraをインストールしたので
Mysqlを組み込んでみる

手順は以下となる
1,Mysql のインストール
2.操作用アカウントの作成
3.操作用テーブルの作成
4.操作用項目の作成
5.Mysql2とactiverecodのインストール
6.databese.ymlを作成
7.app.rbを修正
8.起動し動作確認

となります

1,Mysql のインストール

sudo apt-get install mysql-server

途中で、rootのパスワード名を聞かれるので
パスワードを入力し、TABで「了解」まで移動し、スペースで先へ進む(2回入力)

インストール確認

mysql --version

mysql Ver 14.14 Distrib 5.7.12, for Linux (x86_64) using EditLine wrapper

でした。

2.操作用アカウントの作成

ユーザ:user01
pass:pass01
で、作成する

GRANT ALL PRIVILEGES ON *.* TO (ユーザ名)@localhost IDENTIFIED BY ‘(パスワード)’ WITH GRANT OPTION;
なので、以下にて作成
まず、先ほど、インストールの時に設定したパスワードにて
rootでログインする

mysql -u root -p

rootのパスワードを入力

GRANT ALL PRIVILEGES ON *.* TO user01@localhost IDENTIFIED BY 'pass01' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;

ログインできるか確認する

mysql -u user01 -p

新しいアカウントのパスワードpass01で確認
ログインできらた

exit;

で、終了

3.操作用テーブルの作成

データベース名
sinatra

テーブル名
users

項目名
username(名前)
mailaddres(メールアドレス)

を作成する

作業用アカウントでログイン

mysql -u user01 -p

データベースを作成

CREATE DATABASE sinatra;

データベースの確認

show databases;

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| performance_schema |
| sinatra |
| sys |
+——————–+
5 rows in set (0.01 sec)

データベースの選択

use sinatra;

テーブルの作成

CREATE TABLE <code>users</code> (
  <code>id</code> int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  <code>username</code> varchar(255) NOT NULL,
  <code>mailaddres</code> varchar(255) NOT NULL,
  <code>created_at</code> datetime NOT NULL,
  <code>updated_at</code> datetime NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

テーブルの確認

desc users;

mysql> desc users;
+————-+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————-+————–+——+—–+———+—————-+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(255) | NO | | NULL | |
| mailaddres | varchar(255) | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+————-+————–+——+—–+———+—————-+
5 rows in set (0.01 sec)

4.操作用項目の作成
確認用のデータを作成する
名前: アドレス
‘tanaka’,’t01@gmail.com’
‘satou’,’s01@gmail.com’
‘yamada’,’y01@gmail.com’
の3つの項目を追加してみる

insert into users (id, username, mailaddres,created_at,updated_at) values(1,'tanaka','t01@gmail.com',now(),now());
insert into users (id, username, mailaddres,created_at,updated_at) values(2,'satou','s01@gmail.com',now(),now());
insert into users (id, username, mailaddres,created_at,updated_at) values(3,'yamada','y01@gmail.com',now(),now());

入力したデータを確認する

select id, username, mailaddres from users;

mysql> select id, username, mailaddres from users;
+—-+———-+—————+
| id | username | mailaddres |
+—-+———-+—————+
| 1 | tanaka | t01@gmail.com |
| 2 | satou | s01@gmail.com |
| 3 | yamada | y01@gmail.com |
+—-+———-+—————+
3 rows in set (0.00 sec)

exit;

5.mysql2とactiverecodをインストールする
前回作成した
sina/Gemfile
gem “activerecord”
gem “mysql2”
を追加する
viまたは、gedit
にて修正する

cd
cd sina
vi Gemfile

以下となる

# frozen_string_literal: true
# A sample Gemfile
source "https://rubygems.org"

# gem "rails"
gem 'sinatra'
gem "activerecord"
gem "mysql2"

bundleにて、
“activerecord”
“mysql2”
を、
インストール

cd
cd sina
bundle install --path vendor/bundle

エラーが出たので

rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.2.5

指定し

rbenv shell 2.2.5

再度

cd
cd sina
bundle install --path vendor/bundle

bundleは起動できたが、エラーが出た
下記メッセージに従い

:
mysql client is missing. You may need to 'apt-get install libmysqlclient-dev' or 'yum install mysql-devel', and try again.
:

libmysqlclient-devをインストール

sudo apt-get install libmysqlclient-dev

再度

bundle install --path vendor/bundle

6.databese.ymlを作成

touch database.yml

geditなどでデータ追加

development:
  adapter: mysql2
  database: sinatra
  host: localhost
  username: user01
  password: pass01
  encoding: utf8

7.app.rbを修正

#coding: utf-8

require 'active_record'
require 'mysql2'
require 'sinatra'

# Import files for database
ActiveRecord::Base.configurations = YAML.load_file('database.yml')
ActiveRecord::Base.establish_connection(:development)

class User < ActiveRecord::Base
end

get '/' do
@usrs = User.all
erb %{
<html>
<head>
  <meta charset="utf-8" />
  <title>Test</title>
</head>
<body>
  <table border>
    <tr>
      <th>名前</th>
      <th>メールアドレス</th>
    </tr>
    <% @usrs.each do |us| %>
    <tr>
      <td><%= us.id %></td>
      <td><%= us.username %></td>
      <td><%= us.mailaddres %></td>
    </tr>
    <% end %>
</table>
</body>
</html>
}
end

8.起動し動作確認
実行

bundle exec ruby app.rb

ブラウザ(Firfox)から

http://localhost:4567/

へアクセスし、
名前の一覧がでれば完了です

参考:
・UbuntuにMySQLをインストールするところからテーブル作成までの方法
・Sinatra+MySQL+ActiveRecordでDatabaseの設定を行う
・Sinatra+ActiveRecord+SQLite3で,軽量なWeb-DB連携例
・小規模Webアプリのためのフレームワーク,Sinatra

Ubuntu16でRubyを使ってみる

せっかくの新しい、Ubuntu16の環境なので
Rubyの勉強に使ってみる
VirtualBoxで作成した環境に、
Rubyをインストールし
Webサービス(Sinatra,Rails)を試してみる

手順は以下
1,Git のインストール
2.rbenv のインストール
3.ruby-build のインストール
4.ruby のインストール
5.bundler のインストール
6.sinatra のインストール
7.サンプルAPの作成
8.実行確認
となります

1.Git のインストール

sudo apt-get update
sudo apt-get install git

2.rbenv のインストール

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv

echo 'export PATH="$HOME/.rbenv/bin:$PATH"'>> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc

シェルを再起動

source ~/.bashrc

インストールの確認

type rbenv


「rbenv は関数です」と表示されればインストール完了

3.ruby-build のインストール

mkdir ~/.rbenv/plugins

cd ~/.rbenv/plugins
git clone git://github.com/sstephenson/ruby-build.git

4.ruby のインストール
インストール可能な、最新バージョンを確認

rbenv install -l

2.2.5をインストール

rbenv install 2.2.5

エラーになった

:
Try running <code>apt-get install -y libssl-dev libreadline-dev zlib1g-dev

とのことなので、

sudo apt-get install -y libssl-dev libreadline-dev zlib1g-dev

の、のち、再度

rbenv install 2.2.5

を、行う

インストールされたRubyのバージョンを確認

ruby -v

5.bundler のインストール

gem install bundler

エラーになったので

gem install bundler
rbenv: gem: command not found

The </code>gem' command exists in these Ruby versions:
  2.2.5

設定後

rbenv shell 2.2.5

再度

gem install bundler

6.sinatra のインストール

プロジェクト用エリア(フォルダ:sina)を作成

cd
mkdir sina
cd sina

Gemfileを作成

bundle init

Gemfileにgem ‘sinatra’を追加

source "https://rubygems.org"
gem 'sinatra'

# gemを入れるディレクトリを作成

mkdir vendor
mkdir vendor/bundle

bundle で、Gemfileを実行

bundle install --path vendor/bundle

7.サンプルAPの作成
app.rbを作成

#coding: utf-8
require 'sinatra'
get '/' do
"Hello World"
end

8.実行確認
実行

bundle exec ruby app.rb

ブラウザ(Firfox)から
http://localhost:4567/
へアクセスし、
Hello World
と表示されば、完了です

下記のページを参考にしました
・Ruby on Rails 4.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました

・Ubuntu:Ruby と Ruby on Rails のインストール手順

・【Ruby】Sinatraで、速攻でWebサイトを公開するための環境構築

・Ubuntu、Sinatra、インストール方法、ベンチマーク

Ubutu14で、Ubuntu16の環境を作る

Ubuntu16を試してみるために
Ubuntu14の環境でVirtualBoxで動作確認をしてみる

まず、Ubuntu14にVirtualBoxをインストールする

を参考にし、
https://www.virtualbox.org/wiki/Linux_Downloads
から、ダウンロードをする
Ubuntu 14.04 (“Trusty”) / 14.10 (“Utopic”) / 15.04 (“Vivid”) i386 | AMD64

インスツールするOSが、i386 | AMD64
か調べる必要がある

を、参考に
# uname -a
で、調べると、
Linux ubuntu 3.13.0-24-generic #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
自分のOSはx86_64
なので、64Bit AMD64をダウンロード

VirtualBox 5.0.20 for Linux
(2016/5/8)バージョンは5.0.20のようです
ダウンロードした
virtualbox-5.0_5.0.20-106931-Ubuntu-trusty_amd64.deb
を、ダブルクリックでインストール完了

次に、Ubuntu16のディスクイメージをダウンロード
https://www.ubuntulinux.jp/News/ubuntu1604-ja-remix

ubuntu-ja-16.04-desktop-amd64.iso(ISOイメージ) (md5sum: 76a02f16f56c01f96aeda325914432fd)
から、ダウンロード

VirtalBoxの新規作成か
名前をUbuntu16
タイプ:Linux
バージョン:Ubuntu(64Bit)
次へ
メモリを設定(5120)
次へ
仮想ハードディスを作成する
VDIを選択
次へ
可変サイズ
次へ
20G
作成

設定にて
ストレージ
コントローラを選択
左を選択し
ダウンロードした(ISOイメージ)を選択

起動を選択する
日本語が選択していることを確認し
Ubuntu16インストールを選択

2つのチェックを入れる
続ける
インストールを押す

Tokyで
続ける
キーボード
日本語で
続ける

インストールが完了しました
がでたら、今すぐ起動を押す
電源をオフにして
再度起動する

Ubuntu16が起動できる

tirm
gedit
を、サイドメニューに追加

virtualbox コピー ペーストできるようにする

VirtualBoxでOS間のクリップボードを共有する方法

設定から
一般>高度>
 クリップボードの共有>双方向

再起動したがうまく行かない

http://vboxmania.net/content/%E3%82%AF%E3%83%AA%E3%83%83%E3%83%97%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E5%85%B1%E6%9C%89%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%A7%E3%81%99

>Guet Additions にて追加される機能です
Guet Additionsをインストールしないと行けない

VBoxGuestAdditions.isoが、入っているか探してみる
sudo find / -name VBoxGuestAdditions.iso

/usr/share/virtualbox/VBoxGuestAdditions.iso
にあった

設定で、VBoxGuestAdditions.isoをCDに追加して
起動するが、CDで起動していまいうまくいかない
起動の順番を
設定>システムにより
HDDからDVDの順番にする

再度、起動した後の

Terminal
から
cd /media/ubuntu/VBOXADDITIONS_5.0.20_106931/
sudo /bin/sh VBoxLinuxAdditions.run
にて、VBoxLinuxAdditionsをゲスト側にインストール

インストール後
一度、仮想を終了し、再度起動すると

ホストからゲストへのコピペができた

Ubuntu14上のVmwareにMac OS X Yosemiteをインストールして、Keynoteを立ち上げる

KeyneteをUbuntu14で使いたいため、YesemiteをVmware上で立ち上げてみた

実施する内容には、ネット上のデータを使用するため、

セキュリティ上の問題
ライセン上の問題
などが、含まれますので、
自己責任にて、実施してください

実行環境
Ubuntu 14.04 LTS 日本語
64bit

参考にしたものは
http://kakonacl.xsrv.jp/~kakonacl/douga/virtualmachine/vmware_mac1010.html
http://k-san.blog.jp/archives/1024151536.html
http://ichitaso.com/vmware/yosemite-on-windows-vmware/

[最新&Mac不要]Mac OS X YosemiteをVMWareで実行してみよう!

使用したSoft

unrar
 ・RARアーカイブ解凍のため(*.rar形式)
p7zip-full
 ・7zip解凍のため
VMware-workstation-10.0.2-1744117
unlock-all-v130.zip

大まかな手順は

1,ネット上にある、VmwareソースYosemiteを入手
2,解凍し、Yosemiteソースにする
3,VMwareをインストール
4,VMwareで、OSXが起動できるようにパッチを当てる
5,VMwareで、Yosemiteを起動する
6,無償版iWork09を、インスツールする
7,iWork09(Keynote)を起動する(なぜは、編集画面が白くなり使用できない)
8,AppsをUpdateする
9,iWork09をUpdateする
10,Vmwareの設定を最適化し、快適にKeynotを使用できるようにする
以上により、無事Keynoteを、使用できるようになる

進める上でのポイントは

1,Vmwareのソースを立ち上げると、エラーになります
  対策:Soundを切り離す
2,無償版iWork09を立ち上げが、画面が表示されません
  対策:iWorkをバージョンアップする
3,iWorkをバージョンアップができない
  対策:OSをバージンアップしてから行う

という手順となります。

手順詳細
1,OS X Yosemite 10.10 VMware Imageをダウンロード
http://www.digitalcraks.com/application/165627-os-x-yosemite-1010-vmware-image-30-05-15.html
を、参考に、ダウンロード

http://www.uploadable.ch/file/jvwNwug5bCyU/OS.X.Yosemite.10.10.VMware.Image.part1.rar
http://www.uploadable.ch/file/AnW43DKt6q7B/OS.X.Yosemite.10.10.VMware.Image.part2.rar
http://www.uploadable.ch/file/shzVjwAvDKaH/OS.X.Yosemite.10.10.VMware.Image.part3.rar
http://www.uploadable.ch/file/FHz2nDvb6mXj/OS.X.Yosemite.10.10.VMware.Image.part4.rar
http://www.uploadable.ch/file/fBXxBWWwmQ2G/OS.X.Yosemite.10.10.VMware.Image.part5.rar
http://www.uploadable.ch/file/y6pDkcHanQnK/OS.X.Yosemite.10.10.VMware.Image.part6.rar
http://www.uploadable.ch/file/ZayXa6GU3bXF/OS.X.Yosemite.10.10.VMware.Image.part7.rar

7z解凍時のパスワードはxBytez
度々、おかしなサイトに飛ばされるため、気長にダウンロードする必要がある。

作業用フォルダーを作成

mkdir ~/Yosemite 

以下の7つのファイルをダウンロード

OS.X.Yosemite.10.10.VMware.Image.part1.rar
OS.X.Yosemite.10.10.VMware.Image.part2.rar
OS.X.Yosemite.10.10.VMware.Image.part3.rar
OS.X.Yosemite.10.10.VMware.Image.part4.rar
OS.X.Yosemite.10.10.VMware.Image.part5.rar
OS.X.Yosemite.10.10.VMware.Image.part6.rar
OS.X.Yosemite.10.10.VMware.Image.part7.rar

して、作業用フォルダーに移動する

rarを解凍するため、unrarをインストール

sudo apt-get install unrar

rarを解凍

unrar e OS.X.Yosemite.10.10.VMware.Image.part1.rar

解凍と、rarが連結されOS X 10.10 Yosemite Image.7zができる
参考:http://www.miuxmiu.com/archives/2010/01/07/ubuntu_rar_unrar_compression_extract_expand.html

7zipを解凍するため、7zipをインストール

sudo apt-get install p7zip-full

また、ソフトセンタより7zまたは7ーZipで検索し、7ーZipをインストール
参考:http://linux.just4fun.biz/Ubuntu/7z%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E8%A7%A3%E5%87%8D%E3%82%92%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8B.html

p7zip -d OS X 10.10 Yosemite Image.7z

または、

OS X 10.10 Yosemite Image.7z

7zipファイルをダブルクリックし、解凍する
パスワード「xBytez」を入力
参考:
http://www.xmisao.com/2014/09/25/debian-linux-extract-7z.html

解凍まで、少々時間がかかる
解凍が完了すると
新しいフォルダ

OS X 10.10 Yosemite Image

が、作られる

イメージデータを使用する前に、オリジナルを複製し、格納しておく
フォルダーをCopy Pasteし、フォルダー名を
OS X 10.10 Yosemite Image_org
とする

Vmareをインストールする
VMWareは6.0.6で行う

https://my.vmware.com/jp/web/vmware/free#desktop_end_user_computing/vmware_player/6_0|PLAYER-606|product_downloads

からダウンロード
マイナーバージョンを6.06に切り替える
(最新の場合、VMware Player for Linux 64-bitがない場合がある)

VMware Player for Linux 64-bit

を、ダウンロード

VMware-Player-6.0.6-2700073.x86_64.bundle

が、ダウンロードされる

インストールを行う

cd ^/ダウンロード

VMware-Playerをインストールする

sudo chmod +x VMware-Player-6.0.6-2700073.x86_64.bundle
sudo ./VMware-Player-6.0.6-2700073.x86_64.bundle

参考:
http://itlx.ldblog.jp/archives/51984097.html

VMwareで、OSXを起動するパッチをunlock-all-v130をインストールする

unlock-all-v130をダウンロード

http://cl.ly/1P060b0V2h2X

unlock-all-v130.zipをダウンロード後解凍

unlock-all-v130.zip

解凍後、実行

cd ~/ダウンロード
cd unlock-all-v130
cd linux
sudo chmod +x install.sh
sudo ./install.sh

ダウンロードした
OS X 10.10 Yosemite.vmx
を、起動する

作業用フォルダ「Yosemite」に展開したOS X 10.10 Yosemite Imageを開く
(home>Yosemite>OS X 10.10 Yosemite Image>Yosemite.vmx)

Yosemite.vmxを右クリックで、「WmwarePlayerでの開く」を選択し、起動する

ポップアップ
This virtual machine might have been moved or copied.
In order to configure certain management and networking features, VMware Player needs to know if this virtual machine was moved or copied.
If you don’t know, answer “I Copied It”.
がでた場合
I Copied It
を、押下

ポップアップ
Cannot connect the virtual device sata0:1 because no corresponding device is available on the host.
Do you want to try to connect this virtual device every time you power on the virtual machine?
に対して
Yes
を、押下

起動したら素早く、右下、2番めの
SoundCard:AutoDetect
を左クリックし、Disconnectを選択し、接続を外す

しばらくするとWelcome画面がでるので、
ShowAllにチェックを入れる

スクロールを下げ
「Japan」を選択し、
「Contine」
を、押下する

Choose a keyboard layout
「Japanese」を選択し
「Contine」
を、押下する

How do you want to transfer your information?
に対して、一番下の
「Don’t transfer any information now」
を選択し
「Contine」
を、押下する

「Don’t sing in」
を選択し
「Contine」
を、押下する

上部のポップアップに
「Skip」
を、押下する

Terms and Conditions
「Agree」
を、押下する
上部のポップアップに
「Agree」
を、押下する

アカウントの作成項目を入力し(以下例)
Full name:osx
Account name:osx
Password:osx
Verify:osx(Passwordの右隣)

アルファベット入力に切り替えるには、
右上の「あ」を選択し
「A」Romaji
に、変更する

「Contine」
を、押下する

Diagnostic&Usae画面で
「Contine」
を、押下する

Yosemiteの開始画面になる

Safari(左から3番めの方向磁石のアイコン)
を、選択肢、ブラウザを起動する

検索に「iwork 無料」で検索する


古いMacでもiWork無料でゲットだぜ! – メログロブログ!!
を、選択

画面を下にスクロールし、
iWork’09体験版ダウンロード!
http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iWork/Trial/2Z693-6764.01022009.awq23/iWork09Trial.dmg
を、選択し、ダウンロードする

ダウンロードが開始するので、左上黄色いボタンで、ブラウザ画面を、縮小化して閉じる

システム設定アイコン(一番右の歯車アイコン)をクリックする

Security&Privacy
を選択する

左下の鍵をクリックする
Passwordのポップアップが上部に出るので、Passwordを入力し
「Unlock」
を、押下

一番下のブロックの
「Anywhere」
を選択する

ポップアップがでるので
「Allow From Anywhere」
を、押下

左への赤いボタンで、画面を終了する

ダウンロードした、
右した、Downloadsを
を、押下し
「iWork09Trial.dmg」
を、左ダブルクリックで開く

しばらくすると画面が開くので、
「Install iWork ’09Trial」
を、選択する(左ダブルクリック)
上部ポップアップに
「Contine」
を、押下し

左下の
「Contine」
を、3回押下し

上部ポップアップ画面に
「Agree」
を、押下し

「Install」
を、押下し

ポップアップのパスワードに
パスワードを入力し
「Install Software」
を、押下する

Installが終了して、
The installation ws successful
の画面で、
右下
「Close」
を、押下する

iWork画面の左上ボタンで終了する

左下2番めのランチャ(Launchpad:ロケットアイコン)
を、押下する

追加された、Keynote
を、押下し、Keynoteを起動する

iWorkの開始画面になるので、
Try側のカレンダーを押下する

ライセンスの表示になるので
「Agree」を、押下する

ポップアップがでるので
「OK」を、押下する

メールアドレスを聞かれるので
メールアドレスを入力し
「Continue」を、押下する
(@マークは、Sift+”)

Thenk You
画面で
「OK」を、押下する

画面選択を選択し
「chose」を、押下する
(描画画面が白くなり、まだ、使用できない)

左上の赤いボタンで終了する

右下の
「Close」を、押下し、終了する

プラウザから、OS X Yosemite 10.10.5 統合アップデートにアクセスする
https://support.apple.com/kb/DL1832?locale=ja_JP

ダウンロードをボタンを押下

ダウンロードをクリックし、アップロードを行う

「UPDATE」を、押下する

ライセンス画面を確認し
「Agree」を、2回、押下する

上部ポップアップ画面の
「Download&Restart」を、押下する

ダウンロードが始まるので、しばらく待つ
完了すると右上に、Restartが出るので、押下する
自動的にシャットダウンし、
Installing Software Update
の表示される

完了すると、自動的に、Restartされる

ログイン画面になる

ログインする

上部Updateアイコンを押下する

Keynoteが出るので、UPDATEを押下する

AppleID が聞かれるので、

IDとPassを入力する

Keynoteのインストールが完了すると、
今度を、正しく使用することができる

最後に、高速化を行う(ニューニングなど)

1,メモリーの割付
2,CPUの配置
3,VmwareToolのインスツール
4,BeamoffTool.isoのインスツールし、グラフィックが軽くする
  (https://drive.google.com/file/d/0B-gLR9sz1mCaTl9RVmdSb1hZT3M/view)

その他のURL
http://dreamplus.jimdo.com/2014/09/30/vmware%E4%B8%8A%E3%81%AEmavericks%E3%81%A7keynote%E3%82%84%E3%83%9E%E3%83%83%E3%83%97%E3%81%8C%E7%9C%9F%E3%81%A3%E7%99%BD%E3%81%A7%E4%BD%95%E3%82%82%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84%E3%82%88%E3%81%86%E3%81%A0/