FC2ブログ
2012
08.30

Debianパッケージをいじってみようの会@五反田 その2

Category: debian
Debianパッケージをいじってみようの会@五反田 その2 なるものに参加してきました。

五反田がどこだかわからずに、山手線に乗ったはいいものの、すごく先まで行ってしまって戻ったのは内緒です。


7,8年くらい前は、自分でパッケージングもしていたのですが、
最近は、ほしいパッケージは大体あるし、コンパイルオプションではなく、設定ファイルであれこれ設定を変えられるようになったアプリケーションも多いので、触ることがなくなっていました。


そしたら、当時とはだいぶパッケージングのやり方が変わっていたので、これを機にちょっと学んでみようかなと思った次第です。


今回、初参加でしたので

各自行うこと(初めての人)

リファクタしたいソースパッケージを決めておく
どのあたりが気になるのか、があったらそれもメモしておく
知りたいこと、もメモしておく
リファクタしたいパッケージを pbuilder/cowbuilder でビルドできる環境をローカルに整えておく



をまずやりました。

借りたさくらの VPS の OS を Debian にして、それから sid にして、pbuilder をインストール。

pbuilder でのパッケージング自体は、色々見れば出来はしますが、どうしてそういう風になっているのかがわからなかったので、それを質問事項としてあげました。

pbuilder は、chroot 環境でビルドします。
ビルド環境は、ビルド時に毎回作られます。
毎回(といっても、キャッシュはします)、build depends に書いてあるパッケージを落としてきて、chroot 環境に展開し、そしてビルドを行います。

apt-get build-dep をすると、確かに depend されているパッケージはインストールされますが、ローカル環境でのビルドになってしまいます。
これは、ローカルの環境でビルドを行うと、その人の環境でのビルドになってしまい、ほかの環境で動かなくなる可能性があるためです。
多分、ビルドのためだけに使わないもん入れたくない!って言う部分もある気もしますがw


これは、すごくなるほどなーって思いました。
完全に理解できたわけではないですが、今後、関連した文章を読んだ時に、理解しやすくなるでしょう。


あと、ほかの話をメモ程度に。

dch -r で changelog を 修正できるのでしましょう
debian/watch と uscan 便利
uupdate -u 元のtar ball -v バージョン指定
sudo piuparts -p ほげ.deb でインストールやアンインストールのテストできるよ
pbuilder update で base.tgz を更新できる。cowbuilder もチェック
apt-get install apt-file / apt-file update / apt-file search usr/include/hogehoge とか。 dpkg -S と違って全ファイルから検索できる。これは便利かも。 dpkg -S はローカルにあるやつのみ
Debian Packages that Need Lovin' メンテされてないパッケージのリストみたいなもの。これみてだれかメンテしてよ!的な



野望は、自分のサイトのソースを 修正した後、apt-get で install することなので、がんばってそこまでできるようにしていきたいと思います!


次回もあるので、気になる方は参加してみてはいかがでしょうか。







Comment:0  Trackback:0
2012
08.27

なんたら not found in PATH or not executable.

Category: debian
$ sudo apt-get install pbuilder
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
initscripts : Breaks: console-setup (< 1.74) but 1.68+squeeze2 is to be installed
Breaks: nfs-common (< 1:1.2.5-3) but 1:1.2.2-4squeeze2 is to be installed
E: Broken packages



ないって言われるので、


$ sudo apt-get install console-setup
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
console-setup-linux
The following packages will be REMOVED:
console-terminus
The following NEW packages will be installed:
console-setup-linux
The following packages will be upgraded:
console-setup
1 upgraded, 1 newly installed, 1 to remove and 203 not upgraded.
Need to get 0 B/1,115 kB of archives.
After this operation, 809 kB disk space will be freed.
Do you want to continue [Y/n]?
Reading changelogs... Done
Preconfiguring packages ...
dpkg: warning: 'ldconfig' not found in PATH or not executable.
dpkg: warning: 'start-stop-daemon' not found in PATH or not executable.
dpkg: warning: 'update-rc.d' not found in PATH or not executable.
dpkg: 3 expected programs not found in PATH or not executable.
NB: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)



sudo の挙動が変わったとかそんな感じなのかな。

sudo の man みたら、

The -i (simulate initial login) option runs the shell specified by the password database entry of the target user as a login shell.



ってのがあるので、これ使ったらうまくいった。よかった。







Comment:0  Trackback:0
2012
03.07

Linux でROクライアントのデータをのぞく|゚Д゚))) その1 カモ

Category: debian
普通にWindows上でやればいいじゃんって話もあるけど、
Windowsは難しくてよくわからんので、Linuxでやるのです。

grfデータの中身を見るのは、grftoolでさくっとできます。
see: http://noriko3.blog42.fc2.com/blog-entry-604.html

で、data.grf をサーバにアップロードして(気合で)、
$ grftool data.grf

とすると、入ってるファイルの一覧が表示されます。
ね、簡単でしょ…


あ、はい、問題はこっからですね。


中身のファイルのファイル名の多くにはコリア語が含まれていて、日本語な端末では文字化けしてると思いますが、
わりとそこはどうでもいいです。

では、手始めにアイテムIDと名前一覧を。
$ grftool data.grf 'data\idnum2itemdisplaynametable.txt' | nkf -Xw

ってやると、utf8でファイルの中身を取得できます。

時々、行頭が // になってて、まぁコメントなんでしょう。

perl でさくっと書いて配列に突っ込みます。
my @itemname = `grftool data.grf 'data\\idnum2itemdisplaynametable.txt' | nkf -Xw`;
my $item;
foreach(@itemname){
next if /^\/\/.+$/; # コメントになってる行は捨てましょう
s/\n|\r//g; # 改行コードが不要なら捨てましょう
/^([0-9]+)#(.+)#$/;
$item->{$1}->{'name'} = $2;
}

試してないけど、多分動くと思うよっ…

あとはよしなに…?

ローカルのwindowsにperlいれてどーとかでもいいんですが、
perlプロセスがいるとROが起動しないので、面倒くさいのです。
っても、perlを別名でexeにすれば問題ない気もしてますg

次回以降、
・アイテム説明文を取得
・アイテムアイコンを取得
・アイテム画像を取得
・カード画像を取得
・カードにつく接頭語/接尾語取得
あたりをやってみまふ。

Comment:0  Trackback:0
2011
12.15

abしてたら(ry

Category: debian
abはオートバーサークじゃなくて、apache bench ですよ?

というわけで、nginx と apache の性能比較というか、まぁとりあえずは static なファイルでの request を比較しようかなと。
多分nginxのが早いとは思うんですが、自分でやらずに外の人の実験だけで結論出すのがイヤなのです。

昨日ちまっとやった時に、nginx は worker 、 apache は prefork だったので、両方 worker にしようというわけで
apt-get install apache2-mpm-worker したら、apache 再起動時に

Starting web server: apache2WARNING: MaxClients (10) must be at least as large
as ThreadsPerChild (25). Automatically
increasing MaxClients to 25.

とか言われたので、apache2.conf みたら

<IfModule mpm_worker_module>
StartServers 1
MaxClients 10
MinSpareThreads 1
MaxSpareThreads 4
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>

だったので、MaxClients を修正。
最新のパッケージ(2-2.2.16)の apache2.conf みたら、
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>

ってなってたから、どっかのタイミングで修正されたのね。
CHANGESさらっと見たけど、眠くなってきたのでいつ修正されたかは暇な時にでも!
今なら安心して使えますよってことd

Comment:0  Trackback:0
2011
06.22

CPU温度を知りたいのでアレコレした。

Category: debian
仕事で使ってるマシンがよく落ちて、原因がわからないので、まずは熱暴走を疑ってみようってことで。

# apt-get install lm-sensors

で lm_sensors をインストール。
# sensors-detect

設定を勝手にやってくれるモノ。とりあえずエンター連打。
最後に /etc/modules に書き込むか聞かれるので、ここだけは yes を入力(デフォルトはNO)。
もちろん自分で書いてもよいですが面倒だったので・・・。
んで、マシン再起動か /etc/init.d/module-init-tools

# sensors

で温度を見ることができます。

っても、ずっと監視してるわけにもいかないので、 munin でデータ収集。
# cd /etc/munin/plugins/


としたところで、どういう名前にすればいいのかわからずぐぐる。

サーバの監視をmuninで - あれているBlog -
を発見。ほぼコピペさせてもらって、うまくいきましたとさ。

ちと様子見しますかねー。


Comment:0  Trackback:0
back-to-top