ページ 1 / 1
sfsファイルの作り方
Posted: 12/04/20(金) 23:57
by Endeavor_wako
既成のアプリケーションをsfsにしようとして、
./configure --prefix=/mnt/home/tmp/usr とやってから make && make install しました。【訂正】 & ではなく && です、すみません。
で、/mnt/home/tmp を dir2sfs して作成されたsfsファイルを SFS-Load にてマウントしました。ここまでは期待通りの動作です。
が、アプリケーションの中にはインストールパスを保存、参照しているものがあって、インストール時は/mnt/home/tmp/usr だったのが、実行時は /usr になっているためエラー終了するものがあります。
このような場合、どういう解決方法があるのでしょうか?
Posted: 12/04/21(土) 00:31
by 暇人
削除
Re: sfsファイルの作り方
Posted: 12/04/21(土) 00:40
by シノバー
Endeavor_wako さんが書きました:./configure --prefix=/mnt/home/tmp/usr とやってから make & make install しました。
たいていは次のようにします。(これでうまくいかないアプリもある。)
コード: 全て選択
cd /mnt/home/tmp/APP-xxx
./configure --prefix=/usr
make
make DESTDIR=/mnt/home/tmp/APP-xxx-i686 install
/mnt/home/tmp/APP-xxx はソースを展開したディレクトリ、APP-xxx-i686 は作成するSFSの名前。あるいは APP-xxx-p4 (Puppy 4.x用の意)など。DESTDIRの指定はフルパス指定。configureオプションは丁寧には
コード: 全て選択
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --host=i486-t2-linux-gnu
この場合、SFSの名前は APP-xxx-i486 などとする。
パピーには new2dir というものがありますが、私はあまり好きではないので、以上のような方法を使っています。
new2dir
Posted: 12/04/21(土) 00:48
by シノバー
new2dirはいったん /usr にインストールしてしまうので、いちど PETを作って、それで上書きインストールし、アンインストールすると取り除けます。しかしそうするよりも RAMモードで起動して devx を sfs_load でロードして作業するのが安全です。
new2dirは _DEV を自動的に振り分けてくれるので PETを作るには便利かもしれません。stripもしてくれますし。ただし時間がけっこう掛かります。SFSをターゲットにするときは出来上がりパッケージが少々大きくてもよいという考えもあって、私は new2dir をあまり使いません。手動で振り分けや strip も慣れました

Re: sfsファイルの作り方
Posted: 12/04/21(土) 15:49
by Endeavor_wako
レス有難うございます。
new2dir を使わない方法を試したところ、解決しました。
今まで直接インストールしており、結果pupsave が膨れ上がって起動時間も延びる一方(fsckをかけている)でして、sfsで整理整頓しようと思い立ったものです。
Lupu528非標準ライブラリ(故にsfsに同梱せねばならない)をどうするか迷いましたが、/usr と DESTDIR 両方にinstall してsfs作成後 /usr 側はuninstall しました。
ご指摘のとおり、今後はRAMモードをうまく活用したいと思います。
Re: sfsファイルの作り方
Posted: 12/05/28(月) 22:38
by 486HA
この辺りの問題では、Lazy Puppy 2.0.1に感心している今日この頃です。
複数のpetファイルをまとめてsfs化してみたり、既存のsfsファイルにpetファイルを合体してみたり、
果てはインストール済みのアプリをpetとして抽出したりと盛りだくさんです。
http://murga-linux.com/puppy/viewtopic. ... bd05b72252