query: tag:Gentoo

Portageツリー(パッケージ管理のリポジトリみたいなの)をstableにしてもtestingにしてもRuby1.8系しか出なくて、昼間にTwitterでこんなことをつぶやいていました。

「あー、くそー、ebuild作るか―」と、Ruby1.8系のebuildを参考にしようと思いPortageツリー(/usr/portage/)を見てみたら・・・
textile>>
$ ls -l /usr/portage/dev-lang/ruby/
total 116
-rw-r--r-- 1 portage portage 64001 Jun 29 06:40 ChangeLog
-rw-r--r-- 1 portage portage 4479 Jun 29 06:40 Manifest
drwxr-xr-x 2 portage portage 4096 Jun 14 20:05 files
-rw-r--r-- 1 portage portage 262 Aug 23 2008 metadata.xml
-rw-r--r-- 1 portage portage 5427 Jun 21 23:35 ruby-1.8.6_p369.ebuild
-rw-r--r-- 1 portage portage 5364 Jun 18 22:12 ruby-1.8.7_p174.ebuild
-rw-r--r-- 1 portage portage 5716 Jun 21 02:35 ruby-1.9.1_p129-r1.ebuild
-rw-r--r-- 1 portage portage 5538 May 24 21:35 ruby-1.9.1_p129.ebuild
<<--

気が抜けて思わずTwit

追記 09/07/11 以下は非推奨

「ebuildがあるってことは、マスクされてるのか!」というGentooユーザの直感により、/usr/portage/profiles/package.maskを編集。

textile>>

Alex Legler a3li@gentoo.org (20 Mar 2009)

Ruby 1.9.1 for preliminary testing of libraries depending on it, bug 203706.

Expect (many) breakages and incompatibilities.

Want to help testing? #gentoo-ruby on Freenode

=dev-lang/ruby-1.9.1
=dev-ruby/rubygems-1.3.1-r30
<<--

を以下のようにコメントアウトする。

textile>>

Alex Legler a3li@gentoo.org (20 Mar 2009)

Ruby 1.9.1 for preliminary testing of libraries depending on it, bug 203706.

Expect (many) breakages and incompatibilities.

Want to help testing? #gentoo-ruby on Freenode

#>=dev-lang/ruby-1.9.1
#=dev-ruby/rubygems-1.3.1-r30
<<--

編集が終了すれば、インストールします。

追記 09/07/11 こっちが推奨. thanks, ursmさん!

/usr/portage以下はsyncすると元に戻ってしまうので、/etc/portage/package.unmaskを作成し、
textile>>

=dev-lang/ruby-1.9.1
<<--
と書く。

textile>>

ACCEPT_KEYWORDS="~x86" emerge ruby

<<--

インストールが終了したら、標準でRuby1.8ではなく1.9を使うようにします。
textile>>

eselect ruby set ruby19

Successfully switched to profile:
ruby19

eselect ruby list

Available Ruby profiles:
[1] ruby18 (with Rubygems)
[2] ruby19 (with Rubygems) *

ruby -v

ruby 1.9.1p129 (2009-05-12 revision 23412) [i686-linux]
<<--

以上でインストール完了。

Gentooすばらしい。

posted by y_tsuda y_tsuda on Tue 7 Jul 2009 at 14:59 with 2 comments

最近、こういう理由で(?)Scalaがアツイと僕の周りの人が騒いでいたので僕もその流れに乗ってみました。

周りがMacばっかりなので、Gentooにインストールしてみたいと思います。

Scalaをインストール

まず、このような操作をしてみました。
textile>>

emerge scala -pv

These are the packages that would be merged, in order:

Calculating dependencies... done!

!!! All ebuilds that could satisfy "dev-lang/scala" have been masked.
!!! One of the following masked packages is required to complete your request:

  • dev-lang/scala-2.7.5 (masked by: ~x86 keyword)
  • dev-lang/scala-2.7.4-r1 (masked by: ~x86 keyword)
  • dev-lang/scala-2.7.4 (masked by: ~x86 keyword)
  • dev-lang/scala-2.7.3-r1 (masked by: ~x86 keyword)
  • dev-lang/scala-2.7.3 (masked by: ~x86 keyword)
  • dev-lang/scala-2.7.2 (masked by: ~x86 keyword)
    <<--

maskedパッケージでした。

なので、**ACCEPT_KEYWORDS="~x86"**とします。

textile>>

ACCEPT_KEYWORDS="~x86" emerge scala

<<--

これでOKかと思いきや、scalaのコンパイルでエラーという悲しい状況になりました。

Gentooではソースからコンパイルする以外にバイナリをインストールすることが可能なので、そちらで試してみます。

textile>>

USE="binary" ACCEPT_KEYWORDS="~x86" emerge scala

<<--

これでscalaのバイナリがインストールされます。

ScalaでHello, World!

インストールが済んだら、早速使ってみましょう。まず、インタラクティブシェルを立ち上げます。

textile>>
$ scala
Welcome to Scala version 2.7.5.r0-b20090605191508 (Java HotSpot(TM) Client VM, Java 1.6.0_13).
Type in expressions to have them evaluated.
Type :help for more information.

scala>
<<--

よくわからず、書いてみました
textile>>
scala> object HelloWorld {
| def main( arg : Array[String] ) = {
| println("Hello, World!")
| }
| }
defined module HelloWorld

scala> HelloWorld.main(null)
Hello, World!
<<--

真面目に勉強するなら、Scala By Example(英語/PDF)とかを読むと良いのかも知れません。

とりあえず、今回はこれだけで。

面白そうなのは、ScalaのコードをAndroidで動かすとかですかね。

Android携帯ほしい><

posted by y_tsuda y_tsuda on Mon 6 Jul 2009 at 07:22 with 0 comments