Dh_makeとdpkg-buildpackageを使用して、自分のソースからパッケージをビルドします。/debianのインストールファイルは、プロジェクトファイルの宛先を指定します。インストールされたプログラムを機能させるには、実行可能であるか、chmodで実行権限が必要です。特に、pythonスクリプトと.desktop-fileについてです。
セットアップでこれらの権限を設定するにはどうすればよいですか?それらを宛先にコピーするだけでは実行されません。セットアップの最後にコマンドをトリガーできるか、このようなものがあればいいのですが、これを含める方法がわかりません。
.desktopファイルには実行権限は必要ありませんが、.pyスクリプトには必要です。
braiam@bt:~$ ls -l /usr/share/app-install/desktop/deluge.desktop
-rw-r--r--. 1 root root 1276 Aug 6 2012 /usr/share/app-install/desktop/deluge.desktop
braiam@bt:~$ ls -l /usr/bin/deluge
-rwxr-xr-x 1 root root 289 Jan 27 2013 /usr/bin/deluge
パッケージングがpythonスクリプトの実行可能ビットを設定する前に、dpkgが残りを処理します。
.desktopファイルは、xdgによって読み取られる構成ファイルであり、必要なバイナリを実行するために設定された独自の変数があります。
cat /usr/share/app-install/desktop/deluge.desktop
[...]
GenericName=BitTorrent Client
X-GNOME-FullName=Deluge BitTorrent Client
Comment=Download and share files over BitTorrent
Exec=deluge-gtk %U
Icon=deluge
Terminal=false
Type=Application
Categories=Network;FileTransfer;P2P;GTK
StartupNotify=true
MimeType=application/x-bittorrent;x-scheme-handler/magnet;
ご覧のとおり、ファイルにアクセスしたときに実行を処理するExec
変数があります。
ポストインストールスクリプトを作成できます。
gedit debian/packagename.postinst
これは単なる通常のスクリプトなので、次の手順を実行します。
#!/bin/sh
set -e
chmod 755 /path/to/pythonscript.py
exit 0
または、dh_fixperms
によって許可が変更されることからファイルを除外することもできます。これはdebian/rules
内で実行できます:
%:
dh $@ --with python2
override_dh_fixperms:
dh_fixperms --exclude path/to/pythonscript.py
最初のオプションは、dh_fixperms
がファイルの所有者を変更するなどの他の有用なことを行い、ファイルを除外するとdh_fixperms
が有用なことを実行できないため、推奨されます。また、最初のオプションでは、前にスラッシュがあることに注意してください /path/to/pythonscript.pyは絶対パスなので、2番目のオプションはdebianサブディレクトリに相対的です。
編集:@AlexisWilkeは、オプション2のより良い代替案を言及しています:
%:
dh $@ --with python2
override_dh_fixperms:
dh_fixperms
chmod 755 path/to/pythonscript.py
これにより、dh_fixperms
がマジックを実行し、その後に必要なマイナーな修正が可能になります。