Ubuntu 커뮤니티와 공유 할 사용자 지정 PPA를 어떻게 만듭니 까? 내 사용자 지정 패키지 세트를 만들려고하는데 실제로 커뮤니티와 공유하고 싶습니다.
Ubuntu 커뮤니티와 공유 할 사용자 지정 PPA를 어떻게 만듭니 까? 내 사용자 지정 패키지 세트를 만들려고하는데 실제로 커뮤니티와 공유하고 싶습니다.
답변:
PPA (Personal Package Archive )를 사용하면 소프트웨어 및 업데이트를 Ubuntu 사용자에게 직접 배포 할 수 있습니다. 소스 패키지를 작성하고 업로드하면 Launchpad가 바이너리를 빌드 한 다음 자신의 적절한 저장소에 호스트합니다.
자세한 설명 은 다음과 같습니다 .
주어진 샘플 스크립트에서 기본 .deb 파일을 만드는 방법에 대한 자습서입니다. 이 튜토리얼에서는 먼저 'HELLO FROM PROGRAM'을 보여주는 bash 로 샘플 프로그램 을 만듭니다 . 그런 다음 데비안 설치 프로그램을 만들기 위해 프로그램에 대한 제어 파일 을 만듭니다 . 마지막으로 .deb
파일 로 패키지됩니다 .
bash에서 샘플 프로그램을 작성하십시오.
mkdir "$HOME/create_deb/pgmdir"
gedit "$HOME/create_deb/pgmdir/zenity_hello.sh"
다음 코드를 붙여 넣습니다
#!/bin/bash
echo 'HELLO FROM PROGRAM' | zenity --text-info
프로그램을 실행 가능하게 만들기
chmod +x "$HOME/create_deb/pgmdir/zenity_hello.sh"
데비안 패키지를위한 제어 파일 만들기
control
폴더 안에 이름이 지정된 파일 만들기DEBIAN
mkdir "$HOME"/create_deb/DEBIAN
gedit "$HOME"/create_deb/DEBIAN/control
다음 세부 사항을 붙여 넣기
Package: hellodeb
Version: 0.1
Architecture: all
Maintainer: totti
Installed-Size: 6
Depends: zenity, bash
Section: testing
Priority: optional
Homepage: http://askubuntu.com
Description: This is my first debian package.
Guided by Totti Torvalds.
In Description new line start with a space.
원하는 경우 내용을 편집 할 수 있습니다. 이 파일의 형식에 대한 자세한 내용은 여기 및 여기를 참조하십시오 .
postinst
패키지 설치 직후에 실행되는 스크립트 작성
gedit "$HOME"/create_deb/DEBIAN/postinst
그런 다음 붙여 넣기
#!/bin/sh
set -e
echo 'Installing program : zenity_hello.sh ......' | zenity --text-info
그리고 그것을 실행 가능하게 만드십시오
chmod +x "$HOME/create_deb/DEBIAN/postinst"
prerm
패키지를 제거하기 전에 실행되는 스크립트 작성
#!/bin/sh
set -e
echo 'Removing program : zenity_hello.sh ......' | zenity --text-info
그리고 그것을 실행 가능하게 만드십시오
chmod +x "$HOME/create_deb/DEBIAN/prerm"
패키지 구조를 만들고 프로그램, 데이터 등을 복사
하십시오. 설치된 프로그램 및 해당 데이터의 구조를 작성하십시오. 이 예에서는 파일을에 배치합니다 /bin
.
mkdir -p "$HOME"/create_deb/bin
cp "$HOME/create_deb/pgmdir/zenity_hello.sh" "$HOME/create_deb/bin/zenity_hello"
.deb 파일을 빌드 하십시오.
dpkg-deb --build "$HOME"/create_deb .
.
의지 자동 이름 .deb
버전, 아치 등 또는 사용자 정의 이름을 가진 파일을
dpkg-deb --build "$HOME"/create_deb "$HOME"/create_deb/hellodeb.deb
또는 .deb 파일을
debuild -k'your GPG key here' -S
그런 다음 Ubuntu Launchpad에 업로드 할 수 있습니다.
dput ppa:<lp-username>/<ppa-name> packet-source.changes
여기에 설명 된 것처럼 (출처 : 스크립트 또는 바이너리에서 .deb 패키지 만들기 )
새로 작성된 .deb
패키지를 설치하십시오 . 당신은 그것을 열 수 software-center
있지만 설치를 허용하지 않을 수 있습니다. 따라서 gdebi
패키지 관리자 를 사용하는 것이 좋습니다 .
sudo apt-get install gdebi
gdebi "$HOME"/create_deb/hellodeb.deb
이제 설치할 수 있습니다. 설치하는 동안 gtk 대화가 나타납니다
프로그램 설치 : zenity_hello.sh ......
설치 후 터미널을 열고을 입력하십시오 zenity_hello
. 프로그램이 올바르게 설치되고 모든 것이 정상이면 gtk 대화가 나타납니다.
프로그램에서 안녕하세요
패키지 제거
sudo apt-get remove zenity_hello
OP는 패키지를 게시하는 간단한 방법을 원하므로 쉽게 해킹 할 수 있습니다.
요구 사항 : 공용 폴더가있는 dropbox (또는 다른 서비스, 예를 들어 github ) 계정.
Public-Dropbox-Folder 내에 * .deb 파일을 넣을 폴더를 만듭니다.
mkdir ~/Dropbox/Public/deb-packages
또는 다른 곳에서 해당 폴더를 만들고 공용 폴더에 심볼릭 링크를 넣으십시오.
mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages
해당 폴더로 이동하여 실행될 때 deb 패키지에 필요한 모든 정보가 들어있는 Packages.gz를 작성하는 스크립트를 작성하십시오. 창조하다:
gedit import.sh
이것을 넣으십시오 :
#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz
그것을 실행 가능하게 만드십시오 :
chmod x import.sh
* .deb 파일을 폴더에 복사하십시오. 자신의 것이거나 다른 저장소를 통해 사용할 수없는 것일 수 있습니다. 그런 다음 폴더로 이동하여 거기에 넣은 스크립트를 실행하십시오.
cd ~/deb-packages/
./import.sh
그러면 이 리포지토리에 어떤 패키지가 있는지 알기 위해 소위 Packages.gz 파일을 만들어야 합니다.
이제 Dropbox가 폴더를 동기화하고에서 공개 URL을 가져 오기Packages.gz
를 기다립니다 . 다음과 같이 보일 것입니다 :
http://dl.getdropbox.../Packages.gz
해당 링크의 끝을 제거하고 더 많은 단어를 넣으면 소스에 다음 행을 사용하고 채울 수 있습니다.
deb http://dl.getdropbox.../deb-packages ./
그것은 당신 자신의 deb 저장소를 실행하는 것입니다. 항상 로컬로 동기화되지만 언제 어디서나 누구나 사용할 수 있습니다.
참고 : dpkg-scanpackages
에서 사용할 수 있습니다 dpkg-dev
참조
releases/
참조하십시오 .
debuild -us -uc -k'your GPG key here'
업로드 할 수 있습니다 (소스 : 스크립트 또는 바이너리에서 .deb 패키지 만들기 )dput ppa:<lp-username>/<ppa-name> packet-source.changes
debuild -k'your GPG key here' -S
런치 패드가 (이 거부되지 않은 경우) DEB 파일을 생성하기 때문에 - 어떤 `-us -uc`가 있었을까요?