なんとなく日記

Everyday studying...

お手軽 deb パッケージ作成方法

ファイルツリーがあれば,Debian パッケージは簡単に作れるようだ. ##作成法 ###ファイルツリーの構築 まず適当なディレクトリを作成して,その下に”/“(ファイルシステムのルート)からのインストールイメージを構成する. % mkdir hogehoge % cd hogehoge % mkdir -p ./usr/local/hogehoge % echo "HOGEHOGE" > ./usr/local/hogehoge/README ###DEBIANディレクトリの作成 DEBIAN ディレクトリに4つのファイルを設置する必要があります. compat Version を指定するらしい.ここは “2.0” で. 2.0 control パッケージ情報が書かれたファイル.依存関係とかバージョンなど.ひとまず下記のようにしてみる. Package: hogehoge-package Version: 1.0.0-01 Section: interpreters Priority: optional Architecture: i386 Essential: no Suggests: Maintainer: Shin-ichiro OGAWA <rust.stnard@gmail.com> Conflicts: Replaces: Provides: Description: Hogehoge Package. postinst インストール後に実行する実行可能なシェルスクリプト.何もしなければ下記のように. #!/bin/sh prerm インストール前に実行する実行可能なシェルスクリプト.何もしなければ下記のように.

オレオレDebian サーバをセットアップする#2(失敗)

##目的 いつでも同じ構成のサーバを作れること ###ターゲット 基本構成 Vim bash/zsh/screen/multitail Webサーバ Postfix Apache Rails アプリケーションサーバ Ruby Enterprise Edition thin/mongrel/RMagick/etc… ImageMagick データベースサーバ MySQL 5.1.34 ##参考 http://d.hatena.ne.jp/walf443/20090413/1239639630 http://www.debian.org/doc/manuals/apt-howto/ch-helpers.ja.html http://sourceforge.jp/magazine/07/02/27/0117240 既存のシステムと全く同じパッケージ構成にしたい http://www.debian.org/releases/stable/s390/apbs02.html.ja http://wiki.debian.org/DebianCustomCD ##準備(x86) まずは x86 で検証する. ###Debian 5.0.1 をインストール 基本システムのみ ###必要パッケージの取得 $ su - # apt-get install sudo openssh-server # apt-get install equivs ###インストール後の処理 $ wget http://rubyforge.org/frs/download.php/55510/ruby-enterprise_1.8.6-20090421_i386.deb $ sudo dpkg -i ruby-enterprise_1.

オレオレDebian サーバをセットアップする#1

##目的 いつでも同じ構成のサーバを作れること ###ターゲット 基本構成 Vim bash/zsh/screen/multitail Webサーバ Postfix Apache Rails アプリケーションサーバ Ruby Enterprise Edition thin/mongrel/RMagick/etc… ImageMagick データベースサーバ MySQL 5.1.34 ##参考 http://d.hatena.ne.jp/walf443/20090413/1239639630 http://www.debian.org/doc/manuals/apt-howto/ch-helpers.ja.html http://sourceforge.jp/magazine/07/02/27/0117240 既存のシステムと全く同じパッケージ構成にしたい http://wiki.debian.org/DebianCustomCD http://wiki.debian.org/Simple-CDD/Howto http://www.debian.org/releases/stable/i386/apb.html.ja ##Simple-CDDのテスト インストールCDを作るところまで ###preseed.cfgの編集 長いので省略.こんな感じ. ###CDの作成 $ mkdir my-simple-cdd $ cd my-simple-ccd $ cp ~/preseed.cfg ./ $ build-simple-cdd ###できた CD イメージを元にインストールテスト. するも,どうもうまくいかない.なので次へ

Git 勉強会

万葉さんで2回目の開催 今日もめいっぱい人がいます 相変わらず中華はうまかった.南国亭チャーハンの塩加減は最高. ##Git とは 今日もまったり気味でスタート,らしい 分散リポジトリ ネットワークに繋がっていなくても,Commit できる. 習得コストは高め なぜ github を使うのか by n-iwamatsu さん fork したり SNS っぽい感じ gitosis git リポジトリののユーザ管理などを簡単にできるアプリケーション ##そしてハンズオン形式へ 流れ的にログ取ってると追いつけないので,他の方を参考に! NetBeans 用プラグインもあるそうな Windows はまだ厳しいらしい Maintainer はよく stash を使ってブランチの切り替えをやってるらしい Merge 3Way Merge tag git tag hogehoge 「何をバージョン管理するのかを考えておかないと破綻する」 master を自分がバージョン管理するソースの origin だとして, remote から pull する用の branch を A さんから pull する用の branch を,とか ##懇親会

Debug Hacks Conference 2009

即売会あり 著者の自己紹介 5⁄9(土) に新宿ジュンク堂でトークセッション 5⁄28(木) にミラクル・リナックスでイベントやるらしい. Linux Sypodium の DOF をやりたい. ##まとめと感想 Cとかメモリ周りの勉強したくなりました. ##あいさつ 吉岡さんによる「はじめに」の朗読 学生や社会人1年生の時に読みたいと思った内容になっている ##著者によるデバッグネタ ###大和さん オライリーメーカーでの失敗談 strace(#43)の話 プログラムが実行する system call 一覧を表示する ###大岩さん アンケートで本以外のネタの要望が多かった. RPMコマンドによるデバッグ /var/spool/clientmqueue/ にファイルがどんどんたまる いつ誰が作ったかを調べる # rpm -qf /var/spool/clientmqueue/ sendmail-8.13.8-2AX メールに関係するものだと見当がついた. ファイルを開くとメールだった.そして logwatch 送信者 # rpm -ql logwatch | grep etc .... cron(くろーん) /etc/crontab をみると,root 宛にメール送っていたのを修正した. スクリプトのデバッグ bash -x で,実際に実行したスクリプトを表示してくれる. 裏話 LKMLにパッチ投げて採用された! ###安部さん

Git勉強会#1@万葉

jugyoさん主催による Git 勉強会に行ってきました. ##まとめ 青菜炒めおいしかった. あの量食べてあの値段なのはリーズナブルでした. Gitの奥は深かった. ##ギットギット by 大場さん Gitとは 分散SCM Linuxカーネルの管理 Linuxが作った 現在の Maintainer は Junio C Hamanoさん 分散SCM 複数のリポジトリを扱える 全てが対等なリポジトリで,互いに参照しあえる 運用上,どこかをマスターにすることが多い 分散の利点 個人の履歴をとれる Gitの誕生 BitKeeper(商用)を使っていた メールベースで,高速・堅牢,多くのブランチを扱える リバースエンジニアリングがばれて,逆鱗に触れてしまったらしい 上記を踏まえて,Linus Torvalds が作り始めた 基本設計して満足して,濱野さんが引き継いだようだ SCMの歴史 系譜 RCS -> CVS -> Subversion SCCS -> BitKeeper -> Git Git -> Mercurial Git のデータ構造を変えようとして受け入れられずに作られたのが,Merrcurial RCS ファイルの履歴をとれるようになった でも,複数のプロジェクトに対応したいので,CVS CVS ロックよりもマージ&コピー でも,アトミック性がなかったなどにより,Subversion Subversion 堅牢なデータ構造 でも,複数のリポジトリを連携させたいので,Git SCM比較 Gitはマルチプラットフォーム性が低い Mercurialの方がWindows対応などもいい Gitの特徴 Git Object SHA1ハッシュがリビジョンの指定 ブランチの扱いが簡単 「我々はGitを使っているのではない.GitHubを使っているのだ」by 角谷さん GitHub コードとコードで語る漢(おとこ)のSNS Rails App 他の人のソースコードも簡単にfork GitHub拡大中 gist gisty ブラウザで編集できる IssueTrackがついた ##Git Hans-On by jugyo さん

Ubuntu 8.04.1 LTSでrubygems 1.3.2を使うには.

以前のをアップデート. rootになる. % sudo su - # export GEM_HOME=/var/lib/gems/1.8 rubygems-update-1.3.2.gem1をダウンロード. # wget http://rubyforge.org/frs/download.php/55065/rubygems-update-1.3.2.gem /usr/bin/gem を書き換える require 'rubygems' require 'rubygems/gem_runner' Gem.manage_gems gem install # gem install rubygems-update-1.3.2.gem update_rubygems で update する # /var/lib/gems/1.8/bin/update_rubygems /usr/bin/gem を書き換える require 'rubygems' require 'rubygems/gem_runner' #Gem.manage_gems 確認する % gem --version 1.3.2 最新版 [return]

OracleによるSun買収でMySQLはどうなるのか

社内では「高くなるんじゃない?嫌だなー」とか言われてるんですが,MySQL VP Community RelationsのKaj Arno氏のブログhttp://blogs.mysql.com/kaj/2009/04/21/what-hasnt-changed-with-mysql/には, MySQL is still licensed under the GPL. The GPL license used to form a safety net for the users not certain about whether MySQL AB would follow the spirit of Open Source. It continued to be so with Sun Microsystems. And the Open Source license continues to provide a safety net for its user base, regardless of the owner of MySQL. 「MySQL が GPL であることがセイフティーネットになる」と書かれています.ライセンスによって企業買収からアプリケーションを守ることができるってのは,なんか素晴らしいことのように感じます.