2009年4月29日水曜日

Puppyから不要なアプリを削ってみる

久しぶりにちょっと本格的にPuppy使ってみる事に。
でもPuppyは軽いし使いやすいけど、要らないゲームとかツールが入ってるのでメモリが勿体無い。
無駄なものは捨ててしまえー
って訳で現時点で最新版の4.1.2.1を削ってみる
ただ削って終わりってのも勿体無いのでとりあえずやり方だけ載せておく。

ちなみにこれ書いてる人は3ヶ月ほどちょろっとLinux触っただけの初心者が2年ぶりくらいにLinux使おうとしてちんぷんかんぷん、ってレベルである事を明記しておく。



やり方。
今回はSeamonkeyを削る。
これ削れば10MBくらいは小さく出来る。
軽量化したい場合、一番効果がある

用意するもの

Puppy Linux
作業用のHDDとか
削りたいアプリケーションのpetパッケージ
WindowsPC
7z作業は殆どWindowsPC上で行います。
Linuxでも出来るとは思うけど、なんだかんだでWindowsのほうが楽チンなので。
Windowsなんて使ってられねーって人は脳内でLinuxに変換してください。
Windowsで作業する場合はVMwareでPuppyを起動しながら作業すると楽に出来ます。

まずはWindows側での初期準備。
Windowsに7zをインストールします。7zはフリーソフトです。
既にインストールしてる人は不要です。
リンク:7-zip
7zとは7zって形式でファイル/フォルダを超高圧縮できるアーカイブソフトです。
圧縮率ではzipなど話になりません。7zはzip形式でも圧縮解凍出来ますが、他の圧縮ソフトより高い圧縮率で圧縮できます。
ちなみに7z形式は圧縮率は高いけど、圧縮時間と使用メモリがそれなりに必要です。

インストールしたらメニューから7-Zip File Managerを選択し、そのまま終了させます。
↑の手順をしないとコンテキストメニューが英語表示になります。
一度でもコンテキストメニューを英語表示させてしまうと再起動まで英語表示のままですので是非しておきましょう。

次はLinux側の初期準備。
/initrd/pup_ro2/の中身を全てそっくりそのまま作業用のHDDにコピーします。
詳細は減量仕様Puppyの作り方でも見てください。
以後はこの作業用のHDDにコピーしたファイルに対して作業を行います。

初期の準備はこれくらい。

では早速
まずは削除したいアプリケーションのペットパッケージをダウンロードしてきます。
削除したいアプリはseamonkeyの1.1.11のようです。


今回は↓からseamonkey-1.1.11-1.petをダウンロードしてきました。
リンク:ftp://ibiblio.org/pub/linux/distributions/puppylinux/pet_packages-4/
ダウンロードしてきたPetパッケージを解凍します。


解凍されて出来たtarファイルを更に解凍します。(実際には展開だけど。)


フォルダseamonkey-1.1.11-1にファイルが展開されています。


Petパッケージの仕組みはPetパッケージャが上の作業の後にファイルコピーしてpinstall.shを実行、という仕組みのようです。その逆を行えば削除できる(ハズ)。

展開されたフォルダを見てみると、PuppyLinuxにSeamonkeyをインストールするのに必要なファイルがフォルダ構造そのままでそっくりそのままあります


極端な話、この構造のままベッチャリ貼り付けてショートカット(Linuxではリンク)整えればインスコしたことになるって寸法のようです。
早速このフォルダ構造見つつ削除していきましょうw
こんな時はVMwareだとウィンドウ切り替えつつ確認しながら消していけるので便利です。
面倒な人はスクリプト組んで一気に消すのも在りかも。
実際に消していきます
Windows側でusr\bin\の中身を確認。ファイルが二つあります。

Puppy側で見てみます。
見るのは作業HDDフォルダです。
作業フォルダは今回は/mnt/sda1/work/です。これは自分の環境に合わせて変えてください。


0バイトのmozillaはリンクだったようです。


二つ目のseamonkeyファイル
試しにWindows側のseamonkeyファイルも確認


次はusr\lib\内を消していきます。
フォルダseamonkey-1.1.11とファイルseamonkeyの二つがあります


Puppy側を消していきます。



消していきます。

最後はusr\share\applicationsです。


削除


これでusrディレクトリからは全て削除しました。
次はrootディレクトリです。
.mozillaってファイルがあります。


.ですので隠し属性になっています。
目玉のアイコンをクリックして全表示にします。


.mozillaが表示されたので選択して削除

これでseamonkey関連のファイルは全て削除し尽くしました。
お疲れ様でした。

・・・

と言いたいのですが、まだデスクトップのブラウザアイコンをクリックした場合の設定などが残っています。
消しても容量的には殆ど違いは無いのですが、リンクが切れたショートカットがいつまでも残ってるようなもので気持ち悪いのでそれも削除してしまいましょう。
但しFirefoxをインストールする場合など、デスクトップアイコンを使う場合は残したほうが良いのでこの部分は飛ばしてください。

デスクトップのアイコンの位置等は
/root/Choices/ROX-Filer/PuppyPin
に書かれています。
当然この作業も作業フォルダに対して行います。


xml形式で書かれています。消したいアイコンの部分をバサッと消しちゃいます。
ここの表示はデスクトップに表示される日本語がそのままでは使えないようで、コードに変換してありますのでアドレスを見て探しましょう。
但し、今回はSeamonkeyを消しましたが、ここにはseamonkeyとは書かれていません。


デスクトップのアイコンは、基本的に直接アプリケーションを指定せずに、一旦汎用的なリンク用のスクリプトを実行するようになっています。
流れとしては デスクトップアイコンをクリックする→汎用的なリンク用スクリプトを実行→リンク用スクリプトにSeamonkeyを起動するように記述されているのでSeamonkeyを起動する のようになっています。
勘で削除しましょうw

他の手段としては起動しているPuppyのデスクトップ上でアイコンを削除したり調節し、設定されたファイルを作業フォルダにコピーする方法もあります。


ブラウザ、メールのアイコンを削除し、位置を調整。ついでに壁紙も変更しとく


稼動してるPuppyの設定をそのままコピーして使う
こっちのほうが楽チンですが、起動しているPuppyと作成してる軽量Puppyのアプリの違いとかで誤作動が起こるかもしれません。自分で何とかしてください(ぉ

次は デスクトップアイコン(削除済み)→汎用リンク用スクリプト→Seamonkey(削除済み) の汎用リンク用スクリプトの部分を削除します。
汎用リンク用スクリプトは/usr/local/binにあります。
正確にはPuppyPinに書かれたアドレスにあるのですが、ブラウザの汎用リンク用スクリプトの場所ってことで。

削除する前に中身を見てみましょう。
defaultbrowserの中身をテキストエディタで開いてみました。


たったこれだけです。
mozstartってのを実行しろって書いてます。 "$@"は引数かな?
このmozstartはusr\local\binで消したファイルです。

最後にメニューも書き換えましょう。
/root/.jwmrcがJWMのメニューです。不要なメニューの編集をしましょう。

これで不要なアプリを削る一通りの作業が終わりました。
後は作業したファイルをSFS形式に変換するだけです。
今回はpuppy4.1.2.1日本語版の改造ですのでpup4121JPx.sfsとします。
コンソールから
mksquashfs 作業用フォルダ /保存場所/pup_4121JPx.sfs
今回は作業フォルダが/mnt/sda1/work/だったので
mksquashfs /mnt/sda1/work/ /mnt/sda1/pup_4121JPx.sfs
のようになります。

日本語版のpup_4121JP.sfsと出来上がったpup_4121JPx.sfs


10Mほど小さくなっています。
日本語版のpup_4121JP.sfsと差し替えて起動すればSeamonkeyが削除されたバージョンで起動します。