태그 보관물: packaging

packaging

스크립트 또는 이진 파일로 .deb 패키지 만들기 상당히 문제가되었습니다. 그런 다음 이 짧은 자습서

컴파일 할 소스 코드가없는 것 (구성, 셸 스크립트, 독점 소프트웨어)에 대해 .deb 패키지를 만드는 간단한 방법을 검색했습니다. 대부분의 패키지 튜토리얼에서 컴파일하려는 소스 tarball이 있다고 가정하기 때문에 이것은 상당히 문제가되었습니다. 그런 다음 짧은 자습서 (독일어)를 찾았습니다 .

그 후 간단한 리포지토리를 만들기 위해 작은 스크립트를 만들었습니다. 이처럼 :

rm /export/my-repository/repository/*
cd /home/tdeutsch/deb-pkg
for i in $(ls | grep my); do dpkg -b ./$i /export/my-repository/repository/$i.deb; done
cd /export/avanon-repository/repository
gpg --armor --export "My Package Signing Key" > PublicKey
apt-ftparchive packages ./ | gzip > Packages.gz
apt-ftparchive packages ./ > Packages
apt-ftparchive release ./ > /tmp/Release.tmp; mv /tmp/Release.tmp Release
gpg --output Release.gpg -ba Release

적절한 키 링에 키를 추가하고 다음과 같이 소스를 포함했습니다.

deb http://my.default.com/my-repository/ ./

repo 자체가 잘 작동하는 것처럼 보입니다 (일부 문제가 발생하여 수정하기 위해 패키지를 두 번 추가하고 릴리스 파일의 임시 파일 해결 방법을 만들어야 함). 또한 다운로드 한 .deb를 리포지토리에 넣었습니다. 문제없이 작동하는 것처럼 보입니다. 그러나 내 자체 제작 패키지는 … Wenn i do sudo apt-get update, 이렇게 오류가 발생했습니다.

E: Problem parsing dependency Depends
E: Error occurred while processing my-printerconf (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/my.default.com_my-repository_._Packages
E: The package lists or status file could not be parsed or opened.

내가 잘못한 것을 아는 사람이 있습니까?

업데이트 2012-03-06 : DEB를 만드는 쉬운 방법을 찾고있는 다른 사람을위한 힌트 : FPM을 살펴보십시오 .



답변

연결 한 자습서는 패키지 작성을 위해 낮은 수준의 접근 방식을 사용합니다. 이러한 접근 방식은 일반적으로 권장되지 않으며 신중하게 수행하지 않으면 모든 종류의 문제가 발생할 수 있습니다.

패키징 기본 사항을 이해하면 스크립트의 .deb 작성은 매우 간단합니다. 간단히 말해서 :

# Configure your paths and filenames
SOURCEBINPATH=~
SOURCEBIN=myscript.sh
DEBFOLDER=~/somescripts
DEBVERSION=0.1

DEBFOLDERNAME=$DEBFOLDER-$DEBVERSION

# Create your scripts source dir
mkdir $DEBFOLDERNAME

# Copy your script to the source dir
cp $SOURCEBINPATH/$SOURCEBIN $DEBFOLDERNAME
cd $DEBFOLDERNAME

# Create the packaging skeleton (debian/*)
dh_make -s --indep --createorig

# Remove make calls
grep -v makefile debian/rules > debian/rules.new
mv debian/rules.new debian/rules

# debian/install must contain the list of scripts to install
# as well as the target directory
echo $SOURCEBIN usr/bin > debian/install

# Remove the example files
rm debian/*.ex

# Build the package.
# You  will get a lot of warnings and ../somescripts_0.1-1_i386.deb
debuild

더 많은 스크립트를 추가하려면 스크립트를 디렉토리에 복사하고 debian / install 파일에 추가 한 다음 debuild를 다시 실행하면됩니다. 필요에 따라 debian / * 파일을 확인하고 업데이트해야합니다.

당신이 그 사람 페이지를 읽어야 dh_make, dh_installdebuild


답변