pkgsrc/pkgtools/libkverを使うと、uname -r等を偽ることができる。
これによって、unameの情報を使うプログラムをだまして実行することができる。
pkgsrcのbinary packagesは、uname -sやuname -rを埋め込んでいる。
例えばNetBSD/amd64 current上でchroot環境を用意し、
NetBSD/amd64 6.1用のbinary packagesを作る場合に、libkverを使うことで
他のマシンでpkg_addが可能なbinary packageとすることができる。
こうしないと、NetBSD 6用のlibraryにリンクしているのに、
binary packageとしては、7.99.*用の情報が埋め込まれていて、
pkg_addしにくいbinary packageになってしまう。
また、pkgsrcのMakefileはunameの結果を使って条件分岐する箇所
があるので、buildに失敗するpackagesもあるはずである。
pkgsrc/pkgtools/libkverを使う場合については、
http://comments.gmane.org/gmane.os.netbsd.devel.packages/13587
にあるような手順が書かれているが、手作業でchroot環境を起動させる
場合については、若干分かりにくいように感じたので、手順を書いておく。
ちなみに、pkgsrc/sysutils/sudoを使っていないのは、sudoがLD_*という
環境変数を切り替え先の実行ユーザーに渡さない仕様であるからである。
先にsu(1)でrootになっておく。
(1) chroot環境の外側でlibkverをinstallする。
# cd /usr/pkgsrc/pkgtools/libkver
# make install
# make clean
(2) chrootに一度入り、chroot環境の内側でもlibkverをinstallする。
# chroot /usr/tmp/chroot/netbsd-6/root /bin/ksh
# cd /usr/pkgsrc/pkgtools/libkver
# make install
# make clean
# exit
(3) libkverを使ってchroot環境に入り直す。
ここでは、NetBSD/amd64 7.99.5上で、NetBSD/amd64 6.1に偽る場合を示す。
# kver -r 6.1 chroot /usr/tmp/chroot/netbsd-6/root /bin/ksh
# uname -r
6.1
# uname -a
NetBSD angelcake.elements.tetera.org 6.1 NetBSD 6.1 (LIBKVER) #0: Tue Jan 19 00:00:00 UTC 2038 root@localhost:/sys/arch/amd64/compile/LIBKVER amd64
NetBSDからCanon LBP3100に印刷する
この記事は、 NetBSD Advent Calendar 2024 の2日目の記事です。 Canon LBP3100というプリンターについて Canon LBP3100 というプリンターは。Canonの安価なwinprinterです。 私は2015年3月に...
-
先週末に、OpenVMSを使ってみたいと思っていたのを思い出して、OpenVMSのhobbyist licenseを取得し、simhのVAXエミュレーターで使う、VAX用のインストール用のISOイメージをダウンロードしたので、その手順を書いておく。 どうやら、OpenVMS ...
-
Apache TomcatのフロントエンドにApche httpdを設置している環境がある。 Apache httpdとApache Tomcatの間は、AJP接続をしている。 Apache Tomcatを9.0.34にアップデートしたとこと、以下のようなエラーになってAJP接...
-
Arvel SRC06-USB USBシリアルケーブルというUSBシリアル変換器を持っている。 これにはFDTI製のUSBシリアル変換チップをい利用していて、USB VendorID/ProductID=0x0403/0x6001として認識される。 Arvelを買収...
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。