데비안 패키지로 패키징해야 하는 두 개의 Python 스크립트가 있습니다. 나는 많은 것을 시도하여 약간의 성공을 거두었습니다. 예를 들어, 패키지를 만드는 데 사용했던 setup.py를 만들었고 python-stdeb
(기억이 정확하다면 잘 작동하지 않았습니다) 다음 구조를 사용하여 처음부터 자체 패키지도 만들었습니다.
project
DEBIAN/
changelog
copyright
compat
rules
control
install
usr/
bin/
script1
script2
어쨌든 그렇습니다. 데비안 패키지처럼 보이는 패키지가 있는데 dpkg -b project
이를 사용하여 먼저 빌드한 다음 dpkg -i package.deb
데비안 패키지를 설치할 수 있지만 아무 것도 설치하지 않습니다(뭔가를 설치하지만 내가 작성한 설치 스크립트는 설치하지 않습니다. 꼭 설치하고 싶습니다.) 그렇다면 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