Debianパッケージにパッケージ化する必要がある2つのPythonスクリプトがあります。私は多くのことを試していくつかの成功を収めました。たとえば、パッケージの作成に使用したsetup.pyを作成しpython-stdeb
(記憶が正しい場合はうまくいきませんでした)、次の構造を使用して最初から独自のパッケージも作成しました。
project
DEBIAN/
changelog
copyright
compat
rules
control
install
usr/
bin/
script1
script2
とにかくそうです。 Debianパッケージのように見えるパッケージがあります。dpkg -b project
これを使用して最初にビルドしてからdpkg -i package.deb
Debianパッケージをインストールできますが、何もインストールしません(何かをインストールしますが、私が作成したインストールスクリプトはインストールしません。必ずインストールしたいのですが)、Pythonスクリプトをインストールするするパッケージをどのように作成できますか?彼らがX11に行くのか、「install to」と言うべきかは関係ありません~/package
。私が望むのは、他の人がパッケージをインストールし、私のスクリプトを持つことができるように、私のスクリプトをパッケージに入れることです。
私の考えでは、インストールファイルにメタデータのようなものを入れる必要があるようですが、何かを知りません。
答え1
迅速かつ簡単な方法はを使用することです。これは次のようにalien
変換されます。.tar
.deb
tar czf pkg-name.tgz usr/
fakeroot alien -d pkg-name.tgz
それ以外の場合は、前の方法を使用して次のようにMakefileを使用します。
all: deb
deb:
mkdir -p tmp/usr/bin tmp/DEBIAN tmp/etc tmp/usr/share/man/man5
find tmp -type d | xargs chmod 755
cp some.conf tmp/etc/
cp man/some.5 tmp/usr/share/man/man5/
cp somecmd tmp/usr/bin/
tar c --owner root --group root -v -z -f tmp/data.tar.gz -C tmp ./etc ./usr
cd tmp && find usr/ etc/ -type f | xargs md5sum >DEBIAN/md5sums
awk '/^#Package:/{i++}i {print substr($$0,2); }' Makefile >tmp/DEBIAN/control
tar c --owner root --group root -v -z -f tmp/control.tar.gz -C tmp/DEBIAN ./control ./md5sums
echo 2.0 >tmp/debian-binary
ar rcv pkg-name_1.0-1.deb tmp/debian-binary tmp/control.tar.gz tmp/data.tar.gz
.phony: clean
clean:
-rm -fr tmp
#Package: pkg-name
#Version: 1.0
#Section: net
#Priority: optional
#Architecture: all
#Essential: no
#Installed-size: 100
#Maintainer: Name <mail@here>
#Depends: optional dependencies
#Description: short descr
# long descr