近頃、メモ書きをちょこちょこして下書きになったままのものが沢山あった。
C-h でマニュアルが開く
C-q で現在のコマンドラインをスタックして、新たな別のラインが使える
こんな感じの短い書き散らかしとか。
まとめ用の無い断片ばかりだったので、適当に日記。
こないだ、archlinuxをインストールした時、ライブCDでzshを体験したのを機に、zshを使ってみることにした。昔から「凄い」らしいということは聞いていたけれど、凄すぎてシェルとは別物的になって、スクリプトとか管理者泣かせというような評判も聞いていた。
趣味の人としては、何かを管理するわけじゃなく、シェルでガシガシ作業することもないので、なんでもよいんだけれど、、、
arhclinuxでは、zsh用の便利にカスタマイズされた設定ファイル集としてgrml-zsh-configというパッケージがある、適当にフラグ的な変数を設定していくだけで、便利っぽい。
でも、zshに馴染むため、ネットで適当に.zshrcを説明してるようなページを見ながらお試し中。で、不毛とわかりつつもプロンプトの設定にハマり中。色々とゴテゴテつけてみても、うっとおしくてシンプルなのに戻って行くんだけれど、とりあえずは考えたくなる。(っていうか、そもそもzshの場合プロンプトのテーマってのがあって、デフォルトでもかっこいいのが適当に選べたりもする。)
ところが、実際に書いてみると、趣味プログラムな人としては、書くこと自体で勉強になった気になれてよい。
何かを書いてみるとバージョン管理もしてみたい。subversionを少し使った事があったけれど、いつも目にするGitを初めて体験してみる。そもそも、Gitってlinuxカーネルを管理してる、自分には関係のないたいそうなシステムだと思っていたら、知らないうちにあちこちで目にするようになった。
そこで、githubの事をネットでみてみると、面白そうだったので、登録!
2012年10月4日木曜日
2012年9月18日火曜日
rubyのgemとかbundler
昨日のではどうもすっきりしないので、gem管理について色々巡ってみた。
結果、railsするなら、アプリケーションディレクトリの中にbundlerでgemをインストールして、そこだけで完結した環境を作るってのが分かりやすいらしい。
つまり、システム全体でのgem環境、ユーザーのgem環境は自分で面倒をみつつ、アプリはアプリで独立。
で、うちでは特にRUBYな人ではない今は、RVMまで考えず、gem環境をユーザーで管理する。
$HOME/.gemrcでユーザー設定(/etc/gemrcがグローバル設定)できる。昨日書いてたユーザー権限で$HOME以下へのインストールはこのあたりで設定されていた。あと、ドキュメント作らないオプションを追加。中身はこんな感じ。
gem: "--no-ri --no-rdoc --user-install"
それと、ユーザーのgem環境については、 ~/.gem/を削除したら、振り出しに戻れると考えれば何をしても気が楽。
ユーザー環境でrailsをインストール。
railsアプリを作るときに --skip-bundleフラグを付ける。
$ rails new myapp --skip-bundle
アプリケーションのディレクトリに入り、Gemfileを編集してbundlerでgemをインス トールするが、インストール先をアプリケーションのディレクトリ内にする。
$ bundle install --path vendor/bundle
付け足しとしては、Gemfileに以下の2個のgemを入れる
gem 'execjs'
gem 'therubyracer'
結果、railsするなら、アプリケーションディレクトリの中にbundlerでgemをインストールして、そこだけで完結した環境を作るってのが分かりやすいらしい。
つまり、システム全体でのgem環境、ユーザーのgem環境は自分で面倒をみつつ、アプリはアプリで独立。
で、うちでは特にRUBYな人ではない今は、RVMまで考えず、gem環境をユーザーで管理する。
$HOME/.gemrcでユーザー設定(/etc/gemrcがグローバル設定)できる。昨日書いてたユーザー権限で$HOME以下へのインストールはこのあたりで設定されていた。あと、ドキュメント作らないオプションを追加。中身はこんな感じ。
gem: "--no-ri --no-rdoc --user-install"
それと、ユーザーのgem環境については、 ~/.gem/を削除したら、振り出しに戻れると考えれば何をしても気が楽。
railsについては以下の流れでやる。
ユーザー環境でrailsをインストール。
railsアプリを作るときに --skip-bundleフラグを付ける。
$ rails new myapp --skip-bundle
アプリケーションのディレクトリに入り、Gemfileを編集してbundlerでgemをインス トールするが、インストール先をアプリケーションのディレクトリ内にする。
$ bundle install --path vendor/bundle
以後のrails関連コマンドの呼び出しは「bundle exec」を付けて呼び出す。
$ bundle exec rails generate controller hoge
付け足しとしては、Gemfileに以下の2個のgemを入れる
gem 'execjs'
gem 'therubyracer'
Ruby on Railsのための環境とか
Railsの環境構築は各ディストリビューションのパッケージマネジメントとの関係もあってめんどくさそう。
関連のwiki項目
このめんどくささは、rubyのライブラリとかの管理がシステムとは無関係に、ruby独自のrubygemsっていう機能で管理できるところかな。また、archlinuxのためにパッケージ化してpacman経由でインストールして管理できるようになっているみたいだけれど、この「どっちでもいける」ってのもめんどくささの原因かも?
あわせて、gemはシステムへのインストールとユーザーディレクトリへのインストールを選択できるところも「どっちでもいける」要素。
更には、RVMとかするとrubyのバージョンさえ混在させることができて、とっても「どっちでもいける」状態。
なので、決めてメモする。
もともとrailsしたいなぁっていうお気楽な動機だったので、それが実現できればよい!って方針で。
rubyは、公式リポジトリから1.9.xをインストール。1.9系列はrubyパッケージ自体にgemが入っているので、そのままでgemが使える。
% gem help command
と
% gem help example
を適当に見て、使い方を確認する。
gemは、ホームディレクトリにインストールすることにする。
ホームディレクトリにインストールするには、ユーザー権限でインストールを実行する。sudoとかしちゃダメ。
インストール先は ~/.gem/の中。
この、ディレクトリ以下に実行ファイルも置かれるので、そのディレクトリをpathにいれる。
export PATH="$PATH:$HOME/.gem/ruby/1.9.1/bin"
あわせて、bundlerっていうgemから導入するアプリは、デフォルトでシステムにインストールしようとするので、以下の環境変数を予め設定しておく。これをしないと、インストール時にルートパスワードを求められてびっくりする。
export GEM_HOME="$HOME/.gem/ruby/1.9.1"
いよいよ、railsのインストール。
持ってる本がrails3.0.5バージョンの解説をしていて、現在の3.2系とは動きが大分違う。そこで、慣れるまで本の通りの動作にして勉強したいので、バージョン指定して本で解説されている3.0.5をインストール。ドキュメントも入れないオプションもつけてみる。
% gem install rails --version 3.0.5 --no-rdoc --no-ri
関連のwiki項目
このめんどくささは、rubyのライブラリとかの管理がシステムとは無関係に、ruby独自のrubygemsっていう機能で管理できるところかな。また、archlinuxのためにパッケージ化してpacman経由でインストールして管理できるようになっているみたいだけれど、この「どっちでもいける」ってのもめんどくささの原因かも?
あわせて、gemはシステムへのインストールとユーザーディレクトリへのインストールを選択できるところも「どっちでもいける」要素。
更には、RVMとかするとrubyのバージョンさえ混在させることができて、とっても「どっちでもいける」状態。
なので、決めてメモする。
もともとrailsしたいなぁっていうお気楽な動機だったので、それが実現できればよい!って方針で。
rubyは、公式リポジトリから1.9.xをインストール。1.9系列はrubyパッケージ自体にgemが入っているので、そのままでgemが使える。
% gem help command
と
% gem help example
を適当に見て、使い方を確認する。
gemは、ホームディレクトリにインストールすることにする。
ホームディレクトリにインストールするには、ユーザー権限でインストールを実行する。sudoとかしちゃダメ。
インストール先は ~/.gem/の中。
この、ディレクトリ以下に実行ファイルも置かれるので、そのディレクトリをpathにいれる。
export PATH="$PATH:$HOME/.gem/ruby/1.9.1/bin"
あわせて、bundlerっていうgemから導入するアプリは、デフォルトでシステムにインストールしようとするので、以下の環境変数を予め設定しておく。これをしないと、インストール時にルートパスワードを求められてびっくりする。
export GEM_HOME="$HOME/.gem/ruby/1.9.1"
いよいよ、railsのインストール。
持ってる本がrails3.0.5バージョンの解説をしていて、現在の3.2系とは動きが大分違う。そこで、慣れるまで本の通りの動作にして勉強したいので、バージョン指定して本で解説されている3.0.5をインストール。ドキュメントも入れないオプションもつけてみる。
% gem install rails --version 3.0.5 --no-rdoc --no-ri
2012年9月17日月曜日
systemdとサービスファイル
archlinuxは、ここ最近、大きな変更がたくさんあって、アップデート作業が大変。
2ちゃんでも話題になっていたとおり、起動の仕方がsystemdに変更、ブートローダーのGrubがいわゆるGrub2になって以前のGrub Legacyはサポートされなくなるとか。
とりあえず、systemd移行はwiki見ながらやってみた。
移行の際にカーネルパラメータの変更があるんだけれど、Grub2に変更したばかりだと「あれれ?」となるかも。
Grub2は前のmenu.lstに相当するファイル「grub.cfg」をgrubに作らせるのが作法。
なので、まず、設定用の別ファイルを調整して、自動作成用コマンドを実行してファイルを作る。
設定用の別ファイルの編集
/etc/default/grubファイルのGRUB_CMDLINE_LINUX_DEFAULT辺りを書き換え。
GRUB_CMDLINE_LINUX_DEFAULT=
自動生成用コマンドの実行
# grub-mkconfig -o /boot/grub/grub.cfg
systemdへの切り替えは過渡的な状態にあるから、systemd用のデーモン起動スクリプトがパッケージによっては無いものがあり、その時は、ファイルを自分で用意しないとダメ。
そのためのページが以下のもの。
https://wiki.archlinux.org/index.php/Systemd/Services
apacheを動かそうと思ったら、いきなり無くて、探したら上のページができたのでメモ。
2ちゃんでも話題になっていたとおり、起動の仕方がsystemdに変更、ブートローダーのGrubがいわゆるGrub2になって以前のGrub Legacyはサポートされなくなるとか。
とりあえず、systemd移行はwiki見ながらやってみた。
移行の際にカーネルパラメータの変更があるんだけれど、Grub2に変更したばかりだと「あれれ?」となるかも。
Grub2は前のmenu.lstに相当するファイル「grub.cfg」をgrubに作らせるのが作法。
なので、まず、設定用の別ファイルを調整して、自動作成用コマンドを実行してファイルを作る。
設定用の別ファイルの編集
/etc/default/grubファイルのGRUB_CMDLINE_LINUX_DEFAULT辺りを書き換え。
GRUB_CMDLINE_LINUX_DEFAULT=
"
init=/bin/systemd
"とか自動生成用コマンドの実行
# grub-mkconfig -o /boot/grub/grub.cfg
systemdへの切り替えは過渡的な状態にあるから、systemd用のデーモン起動スクリプトがパッケージによっては無いものがあり、その時は、ファイルを自分で用意しないとダメ。
そのためのページが以下のもの。
https://wiki.archlinux.org/index.php/Systemd/Services
apacheを動かそうと思ったら、いきなり無くて、探したら上のページができたのでメモ。
2012年9月6日木曜日
新しいインストールメディア
ビギナーズガイドを見てみて、新しいインストールメディアにはインストールスクリプトがなくなったらしいことを知った。
そして、手動でのインストールの仕方が丁寧に説明してあったので、 試したくなって体験中。
今まであまり、パーティションのこととかブートローダーの事に興味がなかったのでGPT?EFI?GRUB2?なんて単語が良く分からず、wikiみたり、ぐぐったりしてるとあっという間に時間が過ぎてしまう。
うちのS101は全然2Tを超えたりしないけれど、とりあえず時代はMBRからGPTなのか?という事で、採用してみましたよ。
2 MiB "BIOS Boot Partition" (EF02 type code in gdisk and bios_grub flag in GNU Parted)
S101はBIOS起動なので、grubを使うときは、この大きさ2Mのブート用パーティションが必要。
2009年10月30日金曜日
aweomeとluaの参考書
S101では、gnomeやkde、いわゆるデスクトップ環境(DE)を起動しない、ウインドマネージャ(WM)のみを利用している。そして、そのWMには、タイリングWMの一つ、awesomeを使っている。
以前にもメモした通り、awesomeの設定ファイルはlua言語で書かれていて、その内容は、tagやウインドウの動作に関するルール、キーバインド、ステータスバーやこれに含ませるコンテンツの動作等、awesomeの動作のほぼすべてに渡っての設定を行う事になる。
これは何も設定をしなければ、デフォルトの規定で動くというものではなく(3.4以降はフォールバック機能がありそう)、まさに、何も書かれていないという設定どおりに何もしてくれない。このため、awesomeの設定ファイルには、WMとして動作するための必要最低限の動作のための設定項目が全て書かれており、その設定の内容についても、動作の規定については、フラグ変数でオンオフを書き換えるというようなものでなく、Luaを使ったawesomeのAPIを経由するプログラムを書き換える作業が必要になるため、awesome自体を楽しもうとするならば、Lua言語の知識も多少なりとも必要になる。
以前のメモの時に購入したluaに関する入門書は、プログラミング自体が初めてという感じの初心者向けの本で、言語の事自体を体系的に述べられておらず、「こういう場合はどうなんだろう?」という好奇心が沸いた時には参考にする事が出来ないものだった。
ところが、こないだたまたま本屋に立ち寄った時に、
「Programming in Lua プログラミング言語Lua公式解説書」
という本を見つけた。新しく出版されたらしい。もともと、原文での解説は、前にも紹介したとおりweb上でも公開されている。けれどボリュームがあるので、やっぱり日本語で読めるとありがたい。特に、初めて触れる言語なら、尚更そう思う。実際にこの本を読んでみると、言語自体について、開発者が解説しているためとても分かりやすい。初めてLuaに触れる、若しくは、興味ある人にとってはお勧めの一冊だと思う(必携でもいいと思う)。
以前にもメモした通り、awesomeの設定ファイルはlua言語で書かれていて、その内容は、tagやウインドウの動作に関するルール、キーバインド、ステータスバーやこれに含ませるコンテンツの動作等、awesomeの動作のほぼすべてに渡っての設定を行う事になる。
これは何も設定をしなければ、デフォルトの規定で動くというものではなく(3.4以降はフォールバック機能がありそう)、まさに、何も書かれていないという設定どおりに何もしてくれない。このため、awesomeの設定ファイルには、WMとして動作するための必要最低限の動作のための設定項目が全て書かれており、その設定の内容についても、動作の規定については、フラグ変数でオンオフを書き換えるというようなものでなく、Luaを使ったawesomeのAPIを経由するプログラムを書き換える作業が必要になるため、awesome自体を楽しもうとするならば、Lua言語の知識も多少なりとも必要になる。
以前のメモの時に購入したluaに関する入門書は、プログラミング自体が初めてという感じの初心者向けの本で、言語の事自体を体系的に述べられておらず、「こういう場合はどうなんだろう?」という好奇心が沸いた時には参考にする事が出来ないものだった。
ところが、こないだたまたま本屋に立ち寄った時に、
「Programming in Lua プログラミング言語Lua公式解説書」
という本を見つけた。新しく出版されたらしい。もともと、原文での解説は、前にも紹介したとおりweb上でも公開されている。けれどボリュームがあるので、やっぱり日本語で読めるとありがたい。特に、初めて触れる言語なら、尚更そう思う。実際にこの本を読んでみると、言語自体について、開発者が解説しているためとても分かりやすい。初めてLuaに触れる、若しくは、興味ある人にとってはお勧めの一冊だと思う(必携でもいいと思う)。
登録:
投稿 (Atom)