ページ 11

PET パッケージのインストールでメニューエントリが出ない条件

Posted: 13/02/03(日) 13:27
by サボり魔
Wary-5.3.92 で或るソフトの最新版をソースからコンパイルして PET パッケージに仕上げたところ、いつも通りにメニューエントリを作ったにもかかわらず左下メニューに出てきません。
インストール時に出てくるウインドウでも「このパッケージにはメニューエントリは無いよ」と英文で表示されます。

試しに適当な GTK ダイアログを出す実行ファイルをメニューエントリ付きの PET パッケージにしてみたところ、こちらはメニューに出てきます。

とりあえず /usr/local/petget/installpkg.sh を読んでみると

コード: 全て選択

#121119 if only one .desktop file, first check if a match in /usr/local/petget/categories.dat.
と書かれています。

そこで /usr/local/petget/categories.dat をエディタで開いた上で、インストールしようとしているソフト名で検索し、その行を削除&保存してから PET パッケージをインストールしたところデスクトップ左下メニューにエントリされました。

念のため、この操作を行わずにただ PET パッケージをクリックした際の挙動を他の Puppy でも試してみました。
  • ○ - Lupu-528JP
  • × - Precise-5.4.3
  • × - Wary-5.3.92
  • ○ - Slacko-5.4.0
(注:Wayr-5.3.92 で作ったパッケージを入れているのできちんと動くかどうかは別の話です。メニューエントリが作られるかどうかのテストです)


ソースを読むと、インストール周りは頻繁に Bugfix されてるみたいですね〜。
メニューエントリがきちんと作られた Slacko の最後の fix は「#121015」でした。
それよりも後に追加された「#121119」(Precise や Wary にはある)が原因なのかな?

Re: PET パッケージのインストールでメニューエントリが出ない条件

Posted: 13/02/05(火) 13:13
by シノバー
このあたりですね。BarryさんのBLOG:
http://bkhome.org/blog/?viewDetailed=02949

.deb パッケージをインストールするときの問題対処が遠因?
http://bkhome.org/blog/?viewDetailed=02873
Sylpheed の .deb パッケージをインストールするとメニューの Network の所と Internet の所とに重複して項目ができる。その対処でコードが複雑になったのだろう。放っておけばよかったと私は思うが。

Re: PET パッケージのインストールでメニューエントリが出ない条件

Posted: 13/02/05(火) 22:25
by サボり魔
.deb パッケージを扱えるというのがウリのバージョンもありますが、他所のパッケージを入れられるようにすると弊害も出るんですね。

試しに、 epdfview-0.1.8 のパッケージをメニューエントリ付きで作ってみたところ、/usr/share/applications に配置される .desktop ファイルの中身はソースに初めから含まれていたものとかなり違っています。
Puppy(というか jwm か?)独自のものなんですね。

で、既にメニューに入っているにもかかわらずパッケージインストールを強行してみると、
/usr/local/petget/categories.dat に名前があるのにメニューに出てきました。
うーん、もうわけわかりません。 :|

まぁ、出てこなかった場合に対応する術が分かっているし、いいか…。

Re: PET パッケージのインストールでメニューエントリが出ない条件

Posted: 15/09/19(土) 19:57
by サボり魔
PET 作成時に作業ディレクトリ直下に「pinstall.sh」というファイルを作成し、その中に

コード: 全て選択

#! /bin/bash

 # hogehoge はメニューに出なくて困ってるアプリケーション名
 # (バージョンなどは無しで)
sed -i 's/^\(.*hogehoge\)/#\1/i' /usr/local/petget/categories.dat

と記述しておき、実行属性を与えた上で PET を作成。
categories.dat の該当行をコメントアウトすることで、
メニューに出てくる PET になります。

まぁ、うまくゆかない場合もあるかもしれませんが。

Re: PET パッケージのインストールでメニューエントリが出ない条件

Posted: 15/09/19(土) 21:44
by タロ兵衛
ああ・・・、そうだったんですね。
先日、紹介させて頂いたWireSharkも同種の問題が出ていたかもしれません。@571
pet化するとき、インストールするプログラム名やディレクトリ等を「wireshark」とすると、
petは普通に出来るのですが、メニューに現れません。(pet内の.desktopも正常)
petをインストールした後の/usr/share/applicationsの.desktopのメニューの位置を見ると、puppyのメニューには無い「x-network-sub」になってしまいます
仕方なくアプリ名を"wireshark_p"等にすると狙ったメニューに出てくるのです

他の対処としては、名称を「wireshark」でpet化してインストールした後(メニューに出なくても)、
/usr/share/applicationsの.desktopの「x-network-sub」をエディタで変更してから(network等)
「デスクトップの修復」を行うとメニューにでます(・・・当たり前か)

インストール時に実行できるスクリプトで対応しようとしましたが、ちょっと要領を得なくて出来ませんでした。
(次は頑張ろう=>俺)