トップ «前の日記(2018-12-04) 最新 次の日記(2018-12-11)» 編集

Days of Speed

過ぎゆく日々を書こう。忘れっぽい未来の自分のために


2018-12-07

_ スクリーンショットツール「Shutter」をAppImage化してみた

今年の4月ぐらいにスクリーンショットツール「Shutter」の代わりがない問題と書きましたが、Perlの更新とともにDebianのリポジトリから見事に消されました。 どうしようかと思いつつ代わりのツールを試したのですが、しっくりこないのでStretchにあるShutterパッケージをAppImage化して、もう少しだけ延命を図ることにしました。

AppImageの実行ファイルは置かないので、各自自分で作ってください。

参考

これ以外に参考になる文書は無いと思います。

AppImageファイルの作り方

AppImageのレシピがあるAppImagesリポジトリをクローンして中に入ります。

 $ git clone https://github.com/AppImage/AppImages.git appimages
 $ cd appimages/

以下のレシピをshutter.ymlなど適当な名前で保存して、recipes/ディレクトリ以下に保存します。gistにも同じものを置いてます。

 app: shutter
 binpatch: true

 ingredients:
   dist: stretch
   packages:
     - libxml-sax-expat-perl
     - libimage-exiftool-perl
     - libnet-dbus-glib-perl
     - libgoo-canvas-perl
     - libgtk2-appindicator-perl
   sources:
     - deb http://deb.debian.org/debian/ stretch main
   pretend:
     - libdbus-1-3 1.10.26-0+deb9u1
     - libgtk2.0-0 2.24.31-2

debパッケージをAppImageに変換するシェルスクリプトpkg2appimageを実行して、パッケージをAppImage化します。

 $ ./pkg2appimage recipes/shutter.yml 2>&1 | tee shutter.log

しばらく待つとout/ディレクトリ以下にイメージが出来上がっているので実行します。

 $ ./out/Shutter-0.93.1.glibc2.17-x86_64.AppImage

まとめとか

実を言うと、そのままレシピを書いて作れるかと思いAppImage化に手を付けましたが、パッケージの依存関係が解決できずに止まってしまうので放置してました。

ある日、気になってドキュメントを読むと、pretendのところに「正確なバージョンが無いとパッケージのインストールが拒否されることがあります。それを回避するにはpretendにバージョン番号を指定します。」と書いてありました。

なんの事かと調べたら、AppImage化に不要なライブラリパッケージを除外するために存在しないバージョン番号を指定しているようで、これにひっかかると依存関係が芋づる式に解決できなくなってパッケージがインストールできなくなる、という事のようでした。

原因を探っているとき、パッケージのワークディレクトリにexcludedeblistというファイルがあったので改めて見ると引っかかったであろうdbusとgtk2のライブラリがあったのでpretendに指定してビルドすると…。

できた!

ということでAppImageパッケージができましたが、正直なところ、まだよくわかってないです。

パッケージのクオリティを上げたところで、この先、Shutterが使えなくなる事は目に見えているので一応使えればいいかということでメモを公開しました。

_ Shutterの代わりにKsnipがいいところまで来ているけど、まだもう少しな感じ

そう。いい感じなんだけど画像をためて編集ができないのが、ちょっとつらい。


2001|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|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|06|08|12|
2011|01|02|03|06|07|08|09|10|11|12|
2012|01|02|03|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|12|
2014|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|10|11|12|
2017|01|02|11|12|
2018|01|02|03|04|07|09|10|11|12|

クリエイティブ・コモンズ・ライセンス Jun NOGATA を著作者とするこの 作品クリエイティブ・コモンズの 表示 - 継承 4.0 国際 ライセンスで提供されています。