hylom'sWeblog

- hylom's blog
| about hylom / hylom.net | old contents | login

CentOSでRuby 1.9.3やPython 2.7、Python 3.3などを使う簡単な方法

posted on 2014/04/25 20:29:43

 昨年、『米Red Hat、RHELの開発環境をアップデートする「Developer Toolset 2.0」および「Software Collections 1.0」をリリース』という話題がありました。

 Red Hat Enterprise Linux(RHEL)は安定性を重視し、かつ長期にわたって利用されることを想定しているため、ディストリビューションに含まれているソフトウェアは比較的古めのものになっています。そのため、RHELに標準で含まれていない最新のソフトウェアを利用したい場合、自分でソースコードからビルドするか、サードパーティのリポジトリを利用する必要がありました。

 この「Software Collections」(以下SCL)は、そういった背景の下、RHELに含まれていないソフトウェア、もしくはRHELに含まれているものよりもバージョンが新しいソフトウェアを提供するもので、たとえば以下のようなソフトウェアが提供されます。

Ruby 1.9.3 (ruby193)
Python 2.7 (python27)
Python 3.3 (python33)
PHP 5.4 (php54)
Perl 5.16.3 (perl516)
Node.js 0.10 (nodejs010)
MariaDB 5.5 (mariadb55)
MySQL 5.5 (mysql55)
PostgreSQL 9.2 (postgresql92)

 特にRubyにおいては、近年RHELに収録されているRuby 1.8.7をサポートしないライブラリやソフトウェアが増えてきたため、Ruby1.9.3が簡単に導入できるのは便利なところです。

 そして、CentOSがRed Hatの正式プロジェクトとなった影響なのか、このSCLもCentOSで利用できるようになりました(CentOS-announceメーリングリストに流れたアナウンスメール)。

 導入方法は非常に簡単で、「centos-release-SCL」パッケージをインストールするだけです(ドキュメント)。ただし、利用できるのはx86_64のみとなっています。

# yum install centos-release-SCL

 centos-release-SCLパッケージのインストール後は、yumコマンドでそれぞれのパッケージをインストールできるようになります。たとえばruby 1.9.3をインストールするには、以下のようにします。

# yum install ruby193

 ただし、SCLに含まれるソフトウェアは、そのままでは実行できません(ruby193というパッケージをインストールしても、ruby193というコマンドが利用できるようになるわけではない)。実行する二は、sclコマンドを利用する必要があります。sclコマンドは、引数で指定したパッケージを有効にした状態で指定したコマンドを実行するものです。たとえば、以下のようにするとRuby 1.9.3を有効にした環境で「ruby -v」コマンドを実行できます。

$ scl enable ruby193 'ruby -v'
ruby 1.9.3p448 (2013-06-27) [x86_64-linux]

 また、次のように引数にシェルを指定すれば、指定したパッケージが有効になったシェル環境を起動できます。

$ scl enable ruby193 bash
$ ruby -v
ruby 1.9.3p448 (2013-06-27) [x86_64-linux]
$ exit

 ちなみに、この環境でRubyGemをインストールしたい場合はroot権限でsclコマンドを実行してからgemコマンドでインストールする必要があります。

# scl enable ruby193 bash
# gem install <インストールしたいパッケージ>

 そのほかの使い方などはドキュメントをご参照ください。

SDL_mixerのspecファイル

posted on 2012/09/12 16:54:03

 SDL_mixerはCentOS用のパッケージが用意されていない&提供されているSRPMをx64環境でビルドすると64ビットバイナリが/usr/lib/以下にインストールされてしまうという問題があるので、これを修正するspecファイルを作成した。Gist:SDL_mixer.specで公開している。

CentOS 6のSambaでファイル共有時に問題が発生したら

posted on 2012/09/12 16:05:34

 CentOS 6のSambaでファイル共有がうまく行かない場合、SELinuxによって各種アクセスがブロックされている可能性がある。詳細はsamba_selinuxドキュメントに記載されている。

$ man samba_selinux

 とりあえず、smbclientでログインには成功するのにホームディレクトリにアクセスできない、という場合、次のコマンドで解決できた。

# setsebool -P samba_enable_home_dirs 1