我如何创建PPA?
如何创建自己的自定义PPA以与Ubuntu社区共享? 我正在尝试创建自己的自定义包集,我真的想与社区分享。
使用个人包存档( PPA ),您可以直接向Ubuntu用户分发软件和更新。 创建源包,上传它,Launchpad将构建二进制文件,然后将它们托管在您自己的apt存储库中。
- 创建启动板帐户 。
- 激活PPA 。
- 如果您已签署Ubuntu行为准则,则只能激活PPA。
- 什么是PPA以及如何使用它们?
- 上传源包 。
这是一个详细的解释 。
如何创建.deb文件
这是一个从给定的示例脚本创建基本.deb文件的教程。 在本教程中,我们首先在bash中创建一个示例程序 ,只显示“HELLO FROM PROGRAM”。 然后我们为程序创建一个控制文件 ,以便制作debian安装程序。 最后,它们被打包成.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"
-
为debian包创建控制文件
在文件夹
DEBIAN
一个名为control
文件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文件生成.deb文件
debuild -k'your GPG key here' -S
然后你可以上传到Ubuntu Launchpad
dput ppa:
/ 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
在2分钟内发布您的存储库
由于OP需要一种简单的方式来发布他的软件包,我给了一个简单的黑客。
要求:具有公用文件夹的dropbox(或任何其他服务,例如来自github )帐户。
-
在Public-Dropbox-Folder中创建一个文件夹,放置* .deb文件:
mkdir ~/Dropbox/Public/deb-packages
或者在其他地方创建该文件夹,并在公共文件夹中放置符号链接:
mkdir ~/deb-packages cd ~/Dropbox/Public ln -s ~/deb-packages/ deb-packages
-
进入该文件夹并创建一个脚本,该脚本在执行时会创建Packages.gz,其中包含有关deb包的所有必需信息。 创建:
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同步文件夹并从Packages.gz
获取公共URL 。 它应该看起来像这样:
http://dl.getdropbox.../Packages.gz
摆脱该链接的末尾,再添加一些单词,您现在可以使用并填充sources.list的以下行:
deb http://dl.getdropbox.../deb-packages ./
那就是你有自己的deb存储库运行。 始终在本地同步,但随时随地都可供任何人使用。
注意: dpkg-dev
dpkg-scanpackages
中提供了dpkg-scanpackages
参考
您需要一个Launchpad.net帐户才能创建PPA。 只需在Launchpad上单击您的用户(单击左上角的名称)并创建PPA。 您可能必须先签署行为准则,并在您的帐户中注册GPG密钥。