Eric Guo's blog.cloud-mes.com

in HTML5, JavaScript, Ruby & Rails, Python, and Cloud MES!

Installation Log on Ubuntu 14.04 LTS on vSphere 5.5

Permalink

Install SSH

Upgrade Ubuntu and enable SSH server
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install open-vm-tools
sudo apt-get install openssh-server
Install JDK
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update && sudo apt-get install oracle-java7-installer
Install rvm
sudo su - # switch to root if not yet
apt-get install curl
curl -L get.rvm.io | bash -s master # install rvm
logout
sudo su -
rvm requirements # to install all depends
Install Ruby
rvm install ruby-2.2.3
gem source --remove https://rubygems.org/
gem source --add https://ruby.taobao.org/
gem update --system
apt-get install libgmp3-dev
echo "gem: --no-document" >> /etc/gemrc
gem update
gem install bundler
Install Oracle Client
apt-get install unrar
apt-get install libaio-dev # must need if you want to use sqlplus
mkdir -p /opt/oracle && cd /opt/oracle
unrar x /home/eric/instantclient-all-linux.x64-11.2.0.4.0.rar .
chmod +x instantclient_11_2/sqlplus
ln -s /opt/oracle/instantclient_11_2/libclntsh.so.11.1 /opt/oracle/instantclient_11_2/libclntsh.so
ln -s /opt/oracle/instantclient_11_2/sqlplus /usr/local/bin/sqlplus
echo "/opt/oracle/instantclient_11_2" >> /etc/ld.so.conf.d/oracle_instantclient.conf
# append below line to /etc/enviroment file
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/instantclient_11_2
TNS_ADMIN=/opt/oracle/network/admin
LD_LIBRARY_PATH=/opt/oracle/instantclient_11_2
OCI_HOME=/opt/oracle/instantclient_11_2
OCI_LIB=/opt/oracle/instantclient_11_2
OCI_LIB_DIR=/opt/oracle/instantclient_11_2
OCI_INCLUDE_DIR=/opt/oracle/instantclient_11_2/sdk/include
NLS_LANG=AMERICAN_AMERICA.AL32UTF8
rvmsudo_secure_path=1
update the library and install ruby-oci8
reboot
sudo su -
ldconfig
mkdir -p network/admin
mv /home/eric/tnsnames.ora .
gem install ruby-oci8 # should be no any error here :-)
add R source
sudo vi /etc/apt/sources.list
# append below line to end of sources.list
# you can view mirror at http://cran.r-project.org/mirrors.html
deb http://cran.ism.ac.jp/bin/linux/ubuntu trusty/
prepare to install R
apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
# replace your NO_PUBKEY error above, if pause/block port, using 80 as below line
gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys E084DAB9
gpg -a --export E084DAB9 | sudo apt-key add -
apt-get update # make sure no error here
install R
apt-get install r-base
manual install the ROracle
wget http://cran.r-project.org/src/contrib/DBI_0.3.1.tar.gz
R CMD INSTALL DBI_0.3.1.tar.gz
wget http://cran.r-project.org/src/contrib/ROracle_1.2-1.tar.gz
R CMD INSTALL --configure-args='--with-oci-inc=/opt/oracle/instantclient_11_2/sdk/include --with-oci-lib=/opt/oracle/instantclient_11_2' ROracle_1.2-1.tar.gz

Notes to Convert Galaxy Note 2 N7100 to Note 4 by Just Refresh ROM

Permalink

I’m stucked quite a while when refresh a Galaxy Note II for friends, so I decide write something down:

  1. Wait some time after USB drive installed N7100 driver, something due to china poor network and gfw, the driver install from internet may failed.
  2. Root before install any 3rd party recovery, it’s hardest part of change, I reference this for the Europe model, but you may need to found another way. This is must need before refresh any 3rd party recovery, because seems if not rooted, Knox will stop you do any further action.
  3. Install a 3rd recovery image, for example N7100 CWM Recovery v6.0.5.1
  4. Install customed notes 4 ROM for note 2, you can using this or mirror link

Resolve New RVM 1.26 GPG Key Import Failure Problem

Permalink

When the hkp port blocked, so rvm suggested gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 always failed to running, here is how to resolve such problem.

  1. Find a hkp port not block server, run export after import the key:

    gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 gpg --export --armor D39DC0E3

  2. Go to hkp port blocked server, run:

    gpg --import -

and copy and paste the step 1 server public key content and press Ctrl+D

Another option you can try is using port 80, but it’s can not always work.

apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 561F9B9CAC40B2F7

Compile Eventmachine 1.0.3 in Ruby 2.1.3 on Windows

Permalink

eventmachine didn’t release a new gems for a long time, so we have to manually compile if you decide using Ruby 2.1.3, it’s probably the most complex gems which can still successfully install on windows as far as I known, here is the steps for your interesting:

git clone https://github.com/eventmachine/eventmachine
cd eventmachine && bundle install

Now you will meet the bluecloth can not install problem first, which you can following stackoverflow steps including patch ext/bluecloth.h and 6 steps.

Now you need using updated version of rake-compiler (v0.9.3) to continue, so change eventmachine.gemspec to that version and do the bundle install again.

Now we can running rake package and it should generate the updated 1.0.3 gem file you need, but before that you need another depend lzma package mentioned in Ruby Installer Google Group, I only tested x86 but the x64 should be same.

  1. Put the download openssl-1.0.0m-x86-windows.tar.lzma to c:\temp
  2. run C:\DevKit\devkitvars.bat
  3. c:\Temp> bsdtar --lzma -xf openssl-1.0.0m-x86-windows.tar.lzma
  4. c:\git\eventmachine\pkg> gem install ./eventmachine-1.0.3.gem --platform=ruby -- --with-opt-dir=C:/Temp

Now enjoy eventmachine on ruby 2.1.3 windows!

Checking Gem Reverse Dependencies

Permalink

gem dependency parser --reverse-dependencies or -R in short only works in local, so if you want to get all gems from rubygems, can using:

ruby -ropen-uri -rpp -ryaml -e 'pp YAML.load(open("https://rubygems.org/api/v1/gems/parser/reverse_dependencies.yaml"))'

The tip is coming from Faria DevTips.

Installation Ruby 2.1.3 on Windows Log

Permalink

Except simply install the ruby 2.1.3 from rubyinstaller and it’s DevKit, here is my log when I meet the problem during ruby 2.1.3 on a Windows 7 32bits machine.

  1. Comments out the warn “DL is deprecated, please use Fiddle” at C:\Ruby21\lib\ruby\2.1.0\dl.rb
  2. Install yajl-ruby via gem install yajl-ruby -v 1.1.0 --platform ruby
  3. Install RedCloth via gem install RedCloth --platform ruby and move the file C:\Ruby21\lib\ruby\gems\2.1.0\gems\RedCloth-4.2.9\lib\redcloth_scan.so to new created folder C:\Ruby21\lib\ruby\gems\2.1.0\gems\RedCloth-4.2.9\lib\2.1.
  4. Install sqlite3 via:

    1. run C:\DevKit\devkitvars.bat
    2. mkdir c:\temp
    3. download http://packages.openknapsack.org/sqlite/sqlite-3.7.15.2-x86-windows.tar.lzma to c:\temp
    4. c:\Temp>bsdtar --lzma -xf sqlite-3.7.15.2-x86-windows.tar.lzma
    5. c:\Temp>gem install sqlite3 --platform=ruby -- --with-opt-dir=C:/Temp
  5. Install bcrypt via gem install bcrypt --platform ruby

  6. Install win32console via gem install win32console --platform ruby

  7. Install ffi via gem install ffi --platform ruby

  8. Install pg via gem install pg --platform ruby

  9. Install mysql following stackoverflow via gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:\mysql-connector"'

  10. Install puma via gem install puma -- --with-opt-dir=c:\temp

Setting global environment setting:

CURL_CA_BUNDLE=C:\Ruby21\share\ca-bundle.crt
SSL_CERT_FILE=C:\Ruby21\share\cacert.pem
NLS_LANG=AMERICAN_AMERICA.UTF8

Also do not using ansicon in ruby 2.1.3 any more, seems not compatible.

How to Install Gem Curb in Windows

Permalink

After read the post in Ruby-China say how to use mechanize and curl to login Ruby-China, I decide to install curb, seems still a little tricky.

First download last available libcurl in windows, which currently is 7.34.0.

Extract to C:\ and install the curb via below command.

gem install curb --platform=ruby -- --with-curl-lib=C:/curl-7.34.0-devel-mingw32/bin --with-curl-include=C:/curl-7.34.0-devel-mingw32/include

Some relative issues in github about curb, #37, #183

To make SSL certification work, you need to set your windows environment variable, the file can be download here

CURL_CA_BUNDLE=C:\Ruby200\bin\ca-bundle.crt
SSL_CERT_FILE=C:\Ruby200\bin\cacert.pem

Finally, need copy all DLL and EXE file in C:\curl-7.34.0-devel-mingw32\bin to C:\Ruby200\bin.