| 最近の更新 | |
|---|---|
| 夢
| 2025/10/21 |
| お出かけチェックリスト
| 2025/08/30 |
| 韓国
| 2025/08/18 |
| 音楽データをDisplayAudioで聞く
| 2025/08/18 |
| 飛行機はなぜ飛ぶか
| 2025/08/18 |
| 養老孟司
| 2025/08/18 |
| 駅探(3646)
| 2025/08/18 |
| 騙す方が悪いのか・騙される方が悪いのか?
| 2025/08/18 |
| 高麗神社
| 2025/08/18 |
| 鴨川シーワールド
| 2025/08/18 |
| 黒岩一美
| 2025/08/18 |
| 網野善彦
| 2025/08/18 |
| 縄文聖地巡礼
| 2025/08/18 |
| 老荘
| 2025/08/18 |
| 聖方位
| 2025/08/18 |
| 自分のためにやるからこそ、それがチームのためになる
| 2025/08/18 |
| 自転車
| 2025/08/18 |
| 自転車のライトに泣く
| 2025/08/18 |
| 落合史観の用語補足
| 2025/08/18 |
| 落合莞爾
| 2025/08/18 |
printf(format_str,
date,
user.name,
...)
...
parent.is_nil? ?
'hello' :
'world'post :create, user: {
email: 'x@example.com'
}... | ruby -ane 'print($&, "\n") if $_ =~ /...().../'
... | ruby -ane 'print($1, "\n") if $_ =~ /...().../'
実行時、行内容付きで表示してくれる機能。bash の set -x と同様。 debug に便利:
$ ruby -rtracer ...
require 'digest/md5'
Digest::MD5.hexdigest('abc') Digest::MD5.file('/etc/group')
require 'json'
s = File.open('/tmp/x').read
h = JSON.parse(s)File.open('/tmp/x.out', 'w'){|f|
f.puts(JSON.pretty_generate(h))
}$ sudo gem install rcov
$ rcov
実行トレースを取る方法: tracer.rb を require する。例:
ruby -rtracer script/generate ...
my_hash.each { |k, v| my_hash[k] = v.upcase }my_hash.inject({}) { |h, (k, v)| h[k] = v.upcase; h }DBI 野良ビルド
ruby setup.rb config --with=dbi,dbd_pg ruby setup.rb setup sudo ruby setup.rb install
2008-01-17, openssl がなかったので入れる。 desktop は Vine3.x + ruby 1.8.2(2004-12-25) の野良ビルドなので openssl も野良install が必要:
(1.8.2 ソースをダウンロード) $ umask 022 $ cd ruby-1.8.2/ext/openssl $ ruby extconf.rb $ make $ sudo make install
a = b || c b が nil でないなら b が a に代入される b が nil なら c が a に代入される
(2014/04/01 時点、redmine に移行したのでこの情報は古い)。
https://www.chiliproject.org/projects/chiliproject/wiki/Installation より。
以下、ME, MY_GROUP は Linux のユーザ, グループ。
| chili: | 3.8.0 |
| Passenger: | 3.0.17 |
| Ruby: | 1.9.3 |
| Postgresql: | 9.1 |
| OS: | Ubuntu 12.04 |
$ sudo mkdir /home/chili $ sudo chown ME:MY_GROUP /home/chili $ cd /home/chili $ tar zxvf /tmp/chiliproject-3.8.0/ $ bundle install --without test development
$ bundle exec rake generate_session_store $ RAILS_ENV=production bundle exec rake db:create $ RAILS_ENV=production bundle exec rake db:migrate $ RAILS_ENV=production bundle exec rake redmine:load_default_data
$ mkdir -p tmp public/plugin_assets $ sudo chown -R ME:MY_GROUP files log tmp public/plugin_assets $ sudo chmod -R 755 files log tmp public/plugin_assets
<IfModule mod_passenger.c> PassengerRoot /home/ruby/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/passenger-3.0.17 PassengerRuby /home/ruby/ruby-1.9.3-p194/bin/ruby </IfModule>
LoadModule passenger_module /home/ruby/ruby-1.9.3-p194/lib/ruby/gems/1.9.1/gems/passenger-3.0.17/ext/apache2/mod_passenger.so
#-------------------------------------------------------- # Chili(using rails2.3.x) passenger setup #-------------------------------------------------------- RailsBaseURI /chili <Directory /home/chili/chiliproject-3.8.0/public> Options -MultiViews </Directory>
Ruby (Rack) application could not be started : No such file or directory - config.ru
$ sudo a2enmod passenger
$ sudo service apache2 restart
引数も上書きするため、某自前クラスインスタンスにて rails の params を書き換えてしまい、 paginate でページリンクを押したときに初めて発覚するバグを誘発してしまった。
and と &&, or と || は意味は同じだが、優先度は...
高い: && → || → (or/and) :低い
とのこと。or と and が同じ優先度とは... はまった。
a = b || c
"a は b さもなくば c"
-> X/lib/itamae/cookbooks/ruby3.4.rb
ここで X は会社リポジトリ
$ sudo apt install make libreadline6-dev libssl-dev
$ umask 002
$ tar zxvf ruby-3.1.0.tar.gz
$ cd ruby-3.1.0
$ ./configure --prefix /home/ruby/ruby-3.1.0 \
--disable-install-doc --disable-install-rdoc
$ make # 12th Gen Intel(R) Core(TM) i7-12700K で約2分01秒。速っ!
$ make test
$ (cd /home; test -d ruby || sudo mkdir ruby && sudo chown [USER] ruby) # /home/ruby が無ければ作成
$ make install$ umask 002
$ tar zxvf ruby-2.5.5.tar.gz
$ cd ruby2.5.5
$ ./configure --prefix /home/ruby/ruby-2.5.5 \
--disable-install-doc --disable-install-rdoc
$ make # Thinkpad x250 (Core i7) で約3分30秒
$ make test
$ (cd /home; test -d ruby || sudo mkdir ruby && sudo chown [USER] ruby) # /home/ruby が無ければ作成
$ make install$ sudo apt-get install make gcc zlib1g-dev libreadline6-dev libssl-dev \
postgresql-server-dev-9.4 libyaml-dev \
libmagickcore-dev libmagickwand-dev \
libffi-dev \
libsqlite3-dev$ umask 002
$ tar zxvf ruby-2.2.2.tar.gz
$ cd ruby2.2.2
$ ./configure --prefix /home/ruby/ruby-2.2.2-64bit \
--disable-install-doc --disable-install-rdoc
$ make # Thinkpad x250 (Core i7) で約2分30秒
$ make test
$ (cd /home; test -d ruby || sudo mkdir ruby && sudo chown [USER] ruby) # /home/ruby が無ければ作成
$ make install$ sudo apt-get install make gcc zlib1g-dev libreadline6-dev libssl-dev \
postgresql-server-dev-9.3 libyaml-dev \
libmagickcore-dev libmagickwand-dev \
libffi-dev \
libsqlite3-devlibffi-dev がないと、make 時に下記エラーが出る:
linking shared-object fiddle.so /usr/bin/ld: ./libffi-3.2.1/.libs/libffi.a(raw_api.o): relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC ./libffi-3.2.1/.libs/libffi.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status make[2]: *** [../../.ext/x86_64-linux/fiddle.so] Error 1 make[2]: Leaving directory `/home/[MYNAME]/temp/ruby-2.2.0/ext/fiddle' make[1]: *** [ext/fiddle/all] Error 2
(download 2.2.0)
$ umask 002
$ ./configure --prefix /home/ruby/ruby-2.2.0-64bit \
--disable-install-doc --disable-install-rdoc
$ make # Thinkpad X220 (Core i5) で約4分
# Dell PowerEdge R200 (Celeron 430 1.8G) で約9分
$ make test
$ make install$ sudo apt-get install make gcc zlib1g-dev libreadline6-dev libssl-dev \
postgresql-server-dev-9.3 libyaml-dev \
libmagickcore-dev libmagickwand-dev \
libsqlite3-dev(download 2.1.2)
$ ./configure --prefix /home/ruby/ruby-2.1.2-64bit \
--disable-install-doc --disable-install-rdoc
$ make # Thinkpad X220 (Core i5) Ubuntu-11.10 non-enc-fs で約5分
# VAIO Core i7 + vmware Ubuntu-12.04 で約5分
# Shuttle XS35GT (Atom D510 1.6G) で約20分
# Shuttle XS35V3 (Atom D2700 2.1G) で約15分
# Shuttle DS47 (Celeron 847) で約13分
$ make test
$ make install$ sudo apt-get install openjdk-7-jdk
これまで通りとは行かなかった。下記ステップにてインストール:
$ ./configure --prefix /home/ruby/ruby-2.1.1 \ --disable-install-doc --disable-install-rdoc
※ configure の追加オプションがないと、make install 時に下記のエラーが:
Generating RDoc documentation Directory .ext/rdoc already exists, but it looks like it isn't an RDoc directory. Because RDoc doesn't want to risk destroying any of your existing files, you'll need to specify a different output directory name (using the --opoption) ...
Ruby 1.9.* on Ubuntu-12.04 と同じ。無事インストールされた。
Ruby 1.9.3-p286, Ruby 1.9.3-p194 on Ubuntu-11.10 と同様だが、 以下でハマった:
bundle install で以下エラー発生:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native
extension.
/home/ruby/ruby-1.9.3-p327/bin/ruby extconf.rb
checking for vm_core.h... no
checking for vm_core.h... no
Makefile creation failed
**************************************************************************
No source for ruby-1.9.3-p327 provided with debugger-ruby_core_source gem.
**************************************************************************
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.ググると、色々皆さん困っている様子(^_^;。 https://github.com/cldwalker/debugger/issues/12 で解決できた:
$ gem install ruby-debug19 # 数分かかる $ gem install debugger-linecache -v '1.1.2' $ bundle install # リトライ!
次節 Ruby 1.9.3-p194 on Ubuntu-11.10 と同様。次節参照。
rvm は一旦置いて、plain ruby を使う。 ※ ただし、gdbm を使用するなら。
rvm 1.9.2-p318 で gdbm が動かない(データが壊れる) (サンプルソース)。
一応 rvm の作者に問題点を mail してみた(2012/04/27)。
後は返事待ち。 とは言え、待てないので、検証目的でソースから入れて上記サンプルを動かすと、 普通に動く。ということで、こちらを使用することにする。
$ sudo apt-get install make gcc zlib1g-dev libreadline6-dev libssl-dev \ postgresql-server-dev-9.1 libgdbm-dev libyaml-dev
(download 1.9.3-p194)
$ ./configure --prefix /home/ruby/ruby-1.9.3-p194
$ make # Thinkpad X220 (Core i5) Ubuntu-11.10 non-enc-fs で約5分
# VAIO Core i7 + vmware Ubuntu-12.04 で約5分
# Shuttle XS35GT (Atom D510 1.6G) で約20分
# Shuttle XS35V3 (Atom D2700 2.1G) で約15分
# Shuttle DS47 (Celeron 847) で約13分
$ make test
$ make install1.8.* と 1.9.* の両方を使用する必要に迫られた。 rvm の存在は知ってはいたが、まだ当時信用していなかったので、 /home/ruby/ 以下に両版をインストールし、ユーザ側を my, my1.9 として (後者が ruby 1.9 用)使いわけようとした。 が、いざそうやってみると、my1.9 でログイン中にメールを見たい時、 my1.9 で thunderbird のセットアップをする必要があったり、my にログインして 見たり、というのがかなりわずらわしいことが分かってきた。
…で、rvm を導入してみたのだった。
$ bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"
$ rvm ...
$ rvm install 1.8.7 $ rvm install 1.9.2
$ rvm 1.9.2
1.9.2-p290 :001 > require 'gdbm' LoadError: Could not open library 'gdbm': gdbm: cannot open shared object file: No such file or directory. Could not open library 'libgdbm.so': libgdbm.so: cannot open shared object file: No such file or directory
$ gem uninstall gdbm
$ sudo apt-get install libgdbm-dev
$ gem install gdbm
ok(^_^)/
Ubuntu 11.10 に ruby 1.8.6 をインストールしようとすると以下のエラーが発生:
expected ‘struct stack_st_X509_CRL *’ but argument is of type ‘int *’
色々ググッて、下記で解決した:
$ rvm get head $ rvm reinstall 1.8.6
以下は却下した案:
$ sudo apt-get install gcc zlib1g-dev libreadline6-dev libssl-dev
(download 1.9.2-p290)
$ ./configure --prefix /home/ruby/ruby-1.9.2-p290 $ make # Thinkpad X40 Ubuntu 11.04 encryptfs で約28分 $ make test $ make install
$ gem install pg -- --with-pg-config=/home/pg/postgresql-9.0.4/bin/pg_config
$ sudo apt-get install libpq-dev $ gem install pg
$ gem install rails -v 3.1
$ gem install mongrel --pre
$ rails new myapp -d postgresql
gem 'execjs' gem 'therubyracer'
$ bundle install
gem 'rake', '0.8.7'
$ rails generate scaffold page title:string slug:string body:text --timesta $ rake db:create rake db:migrate $
Ruby 1.8.7-p249 も同様。
$ sudo apt-get install gcc zlib1g-dev libreadline6-dev libssl-dev postgresql-server-dev-8.4 (download 1.8.7-p249) $ ./configure --prefix /home/ruby/ruby-1.8.7-p334 $ make $ make test $ make install
後は必要な gem パッケージをインストール。$ /home/ruby/ruby-1.8.7-p334/bin/ruby setup.rb
$ gem install rdoc -v2.4.3
$ gem install will_paginate -v2.3.11
Ruby 1.8.6-p368 は Ubuntu-10.04 にはインストールできない。make test で 実数の扱いでエラーとなるバグがあるため。
$ gem install bundle
$ bundle gem my_package
$ $EDITOR lib/edgarj/version.rb $ bundle install
$ rake test
$ git commit -v -a
$ rake app:edgarj:build_gem
$ sudo gem install pkg/edgarj-#.#.#.gem $ cd [APP]; rake test
$ gem push pkg/my-package-0.1.0.gem
NOTE: