how to install ruby 1.9.3p194 on CentOS 6.3
CentOS release 6.3 に ruby 1.9.3p194 (2012-04-20) をインストールしました。
zlib が必要です*1。
$ sudo yum install zlib-devel
yaml-0.1.4 が必要です。
yaml-0.1.3 じゃ駄目です。yum じゃゲット出来なかったんで(yaml-cpp-devel は駄目げ)、ソース取ってきて make しました。
http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
readline-devel が必要…かな?*2
$ sudo yum install readline-devel
Ruby on Rails を使う場合…
openssl が必要です。
$ sudo yum -y install openssl-devel
therubyracer(javascript engine)が必要です。
$ sudo yum install gcc-c++ $ sudo `whence gem` install therubyracer
あとはこんな感じで…。
$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.bz2 $ tar jxvf ruby-1.9.3-p194.tar.bz2 $ cd ruby-1.9.3-p194/ $ ./configure $ make $ sudo make install
gem
$ sudo `whence gem` update --system
gem のバージョンが 1.8.24 になりました。
$ sudo `whence gem` update
json と minitest がアップデートされました。
追記(RoR を使う場合)
openssl-devel, ncurses-deve もインストールしておいた方がよさげ。*3*4
http://www.maepachi.com/blog/entry?border=0&id=98
http://r7kamura.hatenablog.com/entry/20110212/1297452845
あと
$ gem install debugger-ruby_core_source
も。
アプリケーションのアップデート
proxmox でアップデートするには aptitude を使うんだぜ?
詳細は http://www.garunimo.com/program/linux/aptitude.xhtml なんだぜ。
大抵は
$ sudo aptitude update
$ sudo aptitude -y full-upgrade
でイイと思うんだぜ。
safe-upgrade の方がいいかもだけどよく分かんないんだぜ?
aptitude を引数無しで立ち上げたらこんなのが出てきてびっくりしたんだぜ…。
アルゴとリズム
ユークリッドの互除法
久しぶりにC#を触るので、とりあえずユークリッドの互除法を作ってみました。
コンソール版とフォーム版があります。
EuclideanAlgorithm.cs
namespace ユークリッドの互除法 { public class EuclideanAlgorithm { public int Exec(int m, int n) { if (m < n) { int tmp = m; m = n; n = tmp; } while (n > 0) { int tmp = n; n = m % n; m = tmp; } return m; } } }
Console.cs
using System; namespace ユークリッドの互除法 { class Console { static void Main(string[] args) { int m = Convert.ToInt32(args[0]); int n = Convert.ToInt32(args[1]); System.Console.WriteLine((new EuclideanAlgorithm()).Exec(m, n)); } } }
Form.cs
using System; namespace ユークリッドの互除法 { public partial class Form : System.Windows.Forms.Form { public Form() { InitializeComponent(); } private void TextChangedHandler(object sender, EventArgs e) { int m; int n; string result = ""; if (Int32.TryParse(txtM.Text, out m) && Int32.TryParse(txtN.Text, out n)) { result = (new EuclideanAlgorithm()).Exec(m, n).ToString(); } txtResult.Text = result; } } }
FizzBuzz
じゃあ、FizzBuzz でも作ってみるかな、と。
yield 使ってるトコが C# ぽいですか。
FizzBuzz.cs
using System.Collections; namespace FizzBuzz { public class FizzBuzz { public static IEnumerable GetValue() { for (int i = 1; i <= 100; i++) { if (i % 15 == 0) yield return "FizzBuzz"; else if (i % 5 == 0) yield return "Buzz"; else if (i % 3 == 0) yield return "Fizz"; else yield return i; } } } }
6.2に byobu をインストールする
$ RPM=epel-release-6-8.noarch.rpm $ sudo rpm -ivh http://ftp.iij.ad.jp/pub/linux/fedora/epel/6/x86_64/$RPM $ wget http://ftp.iij.ad.jp/pub/linux/fedora/epel/RPM-GPG-KEY-EPEL-6 $ sudo rpm --import RPM-GPG-KEY-EPEL-6 $ sudo yum install byobu --enablerepo=epel-testing
以下を参照しました。
http://d.hatena.ne.jp/ocs/20120721/1342870128
http://nemf.info/2012/04/epel6-memo/
ユーザ固有のメイルアドレスを設定する
$ git config --global user.email foo@example.com
フルパスを得る
function fullpath { find `pwd` -maxdepth 1 -name $* 2>/dev/null }
- 例
$ cd /var/log
$ fullpath messages
/var/log/messages