平衡点


2009/02/20

_ Debian パッケージ作成環境の構築

先日, 念願の 64bit 環境を手に入れたので, 野良パッケージ作成様の環境を構築した. 母艦は Core2Quad の Debian GNU/Linux 5.0(lenny), amd64. ここに amd64,i386 の pbuild 環境を構築する. 作成する野良パッケージは, 主に地球流体電脳倶楽部 で公開しているソフトウェア群.本家に上げたいのだけれども, ライセンスの確認(あんまり問題無さそう)とFortran コンパイラの問題ので, とりあえずは保留.

必要なソフトウェアの導入

クリーンな依存関係の test/clean な build 環境を提供するためのパッケージとして,Debian にはpbuilder がある. これを導入する. で, pbuilder では環境を固めた base.tgz を展開し chroot しているのだけれど, これを少し高速化するためのパッケージとしてcowdancer がある.これらを導入する.

環境構築

cowbuilder の設定

以下に書く内容は非常に ad hoc. 今ドキュメントを眺めてみると, もうちょっと賢いやりかたはある.

64bit 版(amd64)の base.cow を作成する. ここでは /var/cache/pbuilder/lenny-amd64.cow に置くことにする.

$ sudo cowbuilder --create \
  --distribution lenny \
  --basepath /var/cache/pbuilder/lenny-amd64.cow

32bit 版(x86)の base cow は /var/cache/pbuilder/lenny-i386.cow に作成

$ sudo cowbuilder --create \
  --distribution lenny \
  --basepath /var/cache/pbuilder/lenny-i386.cow \
  --debootstrapopts --arch --debootstrapopts i386

初期設定として, それぞれに電脳サーバの apt-line と GPG Key を追加しておく.

$ sudo -s
# HOME=/root cowbuilder --login --save-after-login

login できるのだけれども base system しか無いので vi が無い.面倒なので cowbuilder がハードリンクを貼った先(/var/cache/pbuilder/build/pid.cow) を修正する

追加した apt-line は電脳サーバの apt-line と localhost の apt-line.最初は deb file:// としていたのだけれども, pbuilder/cowbuilder は chroot しているので親のファイルが見えない. しょうがないから localhost 閲覧限定で httpd(apache) を上げて, そこから取得することにする.

追加した apt-line は以下の通り.

# GPG key: AEE995F4
deb ftp://www.gfd-dennou.org/arch/cc-env/debian-dennou/ lenny/
deb-src http://www.gfd-dennou.org/arch/cc-env/debian-dennou/ lenny/
deb http://localhost/debian/ ./
deb-src http://localhost/debian/ ./

あとは GPG key の追加. これは cowbuilder で login した shell で apt-key を実行して追加する.

apache の設定

pbuilder/cowbuilder から参照できるようにlocal に httpd を立ち上げて, 作成したパッケージが apt で取得できるようにする.その後で /etc/apache2/sites-available/pbuild を作成して以下の内容を追記.

$ sudo aptitude install apache2
$ cat /etc/apache2/sites-available/pbuild
<VirtualHost *:80>
  Alias /pbuild/ "/var/cache/pbuilder/result/"
  <Directory "/var/cache/pbuilder/result/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
  </Directory>
</VirtualHost>
$ sudo a2ensite pbuild

これで pbuilder/cowbuilder の chroot 環境でもhttp://localhost/pbuild が見えるようになる.

スクリプトの準備

パッケージの構築には以下のスクリプトを使用(( .pbuildrc で設定できる項目もあるけど )).

電脳サーバではパッケージを pool スタイルで管理していない((パッケージ名のディレクトリに置いてある))ので, パッケージ名のディレクトリを作成し, そこに結果を置くことにする.

あと, 作成したパッケージを apt で http://localhost/pbuild から取得できるように作成したパッケージを/var/cache/pbuilder/result/ にハードリンクして, apt-ftparchive を実行している(mkaptline, 実体は apt-ftparchive + 鍵署名).

# source: bash
#!/bin/bash
set -e

PWD=$(pwd)
DENNOU_PKG_NAME=`echo $@ | awk -F_ '{print $1}'`
RESULTDIR=$HOME/pbuild/result/$DENNOU_PKG_NAME
[ -d $RESULTDIR ] || mkdir -p $RESULTDIR
DISTLIST=$(ls -d /var/cache/pbuilder/*.cow)
CONFIG=$DENNOU_PKG_NAME.pbuilderrc
cat << EOF > $HOME/pbuild/$CONFIG
BUILDRESULT=$RESULTDIR/
EOF
for CHROOTDIR in $DISTLIST
do
  ARCH=$(basename $(basename $CHROOTDIR | cut -d'-' -f2) .cow)
  sudo cowbuilder --update --basepath $CHROOTDIR
  sudo cowbuilder --build \
  --basepath $CHROOTDIR \
  --configfile $CONFIG \
  --debootstrapopts --arch \
  --debootstrapopts $ARCH $@
done
sudo ln $RESULTDIR/* /var/cache/pbuilder/result/
rm -f $HOME/pbuild/$CONFIG
$HOME/bin/mkaptline

結果

そんな訳で電脳 Ruby 謹製品 Debian Packageの更新は終了. 今迄amd64 のパッケージは人に頼んでいたのだけれど, それもできるようになった.

あとは spml に必要なライブラリ ですか...

うーん. gfortran がきちんと動くようになってくれれば, 本家に入れられるのに...


2013/02/20

_ 最近

ちょっとイロイロあって, 生産性が落ちております. 節電モード.


2022/02/20

_ Wanderlust での HTML メール表示

HTMLメール自体は諸悪の根源だと思うので滅んで欲しいと常々思っているのだけれど, outlook なんかが送ってくる multipart の text/plain が無駄な改行が多過ぎて読み辛くてかなわんので 渋々 HTML を表示させていたりする(あと, text で済む内容なのに「HTML 表示を有効にして下さい」とか強制してくるアレやコレもあるよね, 的な).

普段遣いの MUA は Wanderlust なので, text/html の表示には mime-w3m を使っていた. で, 昔の記憶が定かではない or 記憶違いなのか

まあ, 必要に応じて html リンクを踏まねばならない事はままあるので, どうやってたのかジタバタしてみたり.

結果として eww で表示する様に切り替えてた.

昔何にハマったのか, 殆ど覚えていない鳥頭. まあ, 何かハマったら, また考えよう.

eww の設定は以下

;; リンクを簡単に辿る(Hit-a-Hint) のために =ace-link= も入れておく
;; - my:d:tmp は $HOME/.cache/emacs 以下.
(leaf eww
  :preface
  (unless (file-directory-p (expand-file-name "eww" my:d:tmp))
    (make-directory (expand-file-name "eww" my:d:tmp)))
  :init
  (leaf ace-link :ensure t)
  (leaf shr
    :custom
    ((shr-use-colors    . nil)
     (shr-use-fonts     . nil)
     (shr-image-animate . nil)
     (shr-width         . 72)
     (shr-max-width     . 72)
     )
    )
  :bind (("<f2>" . eww)
         (:eww-mode-map
          ("r"   . eww-reload)
          ("o"   . eww)
          ("&"   . eww-browse-with-external-browser)
          ("b"   . eww-back-url)
          ("]"   . eww-next-url)
          ("["   . eww-previous-url)
          ("g"   . eww-top-url)
          ("h"   . backward-char)
          ("j"   . next-line)
          ("C-n" . next-line)
          ("k"   . previous-line)
          ("C-p" . previous-line)
          ("l"   . forward-char)
          ("/"   . isearch-forward)
          ("?"   . isearch-backward)
          ("n"   . isearch-next)
          ("N"   . isearch-previous)
          ("f"   . ace-link-eww))
         )
  :custom
  `((eww-bookmarks-directory
     . ,(expand-file-name "eww" my:d:tmp))
    (eww-search-prefix
     . "https://www.google.com/search?&gws_rd=cr&complete=0&pws=0&tbs=li:1&q="))
  :config
  (ace-link-setup-default)
  )

Wanderlust の html 表示は以下

(setq mime-view-text/html-previewer 'shr
      mime-setup-enable-inline-html 'shr
      mime-view-type-subtype-score-alist '(((text . plain) . 0)
                                           ((text . html)  . 1)))

ま, とりあえずは快適になったので良しとする.


2025/02/20

_ Thinkpad X13 Gen5 を購入した.

今日届いた. とはいえ, 内蔵 SSD を換装する予定なので, 火入れはまだしていない. ここ2年ぐらい, メインマシンが WSL2 環境だったので酷く辛かったが, さて, どうなるかな?


連絡先など
最近の日記
  • 2025/05/20
    • 1. glibc の更新
  • 2025/04/30
    • 1. dovecot の更新でハマる.
  • 2025/04/15
    • 1. glibc の executable stack
  • 2025/04/03
    • 1. 居室ルータのネットワーク上流が死んでた.
  • 2025/03/25
    • 1. Wanderlustで日本語の添付ファイルを扱う defadvice を nadvice に書き換える(失敗?)
一覧
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|02|03|04|08|09|10|11|12|
2013|01|02|03|04|05|06|08|09|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|09|10|
2016|02|03|
2017|01|02|03|05|06|07|09|11|12|
2018|03|06|07|10|11|12|
2019|01|02|03|04|05|07|10|12|
2020|01|02|03|04|05|08|09|10|11|12|
2021|01|02|03|05|06|07|08|09|11|12|
2022|01|02|03|04|05|06|08|10|11|12|
2023|02|03|04|06|08|09|11|12|
2024|01|02|03|04|05|06|10|12|
2025|02|03|04|05|
Back to Top ▲