如何创建自己的自定义PPA与Ubuntu社区共享?我正在尝试创建自己的自定义软件包集,我真的很想与社区分享。

评论

相关或相同的:askubuntu.com/questions/28562/…

也许这有助于Packaging.ubuntu.com/html/getting-set-up.html

#1 楼

使用个人软件包存档(PPA),您可以直接向Ubuntu用户分发软件和更新。创建您的源程序包,上传它,Launchpad将构建二进制文件,然后将其托管在您自己的apt信息库中。



创建启动板帐户。

激活PPA。
只有在签名Ubuntu代码后才能激活PPA。行为。
什么是PPA?如何使用它们?

上载源程序包。

这里有详细说明。

评论


FWIW在签署行为准则之前,我可以激活我的PPA。

– Sparhawk
2014年4月3日在4:30

这是最好的答案。您刚刚被告知如何创建PPA。下面的响应(由totti提供)不是PPA,而是公共存储库。尽管(可能)完成同一件事,但两者是不同的。他甚至在回答的第一行中说:“这个问题的答案写得很好,可以接受。由于OP希望以一种简单的方式发布他的软件包,所以我很容易就可以破解。”因为您更喜欢简单的技巧,所以它并不是最佳的答案。

– lbaile200
2014年7月9日14:47

可以,但是此答案中的任何链接都没有真正描述如何从头开始。这里的所有链接都是为开发人员创建的,这些链接已经包含在材料中

–rubo77
2014年7月9日15:07

@ rubo77-“如何创建”严格来说太宽泛,无法回答。这完全取决于您要打包的内容。实际上,以上答案中的每个步骤都可以是单独的Q,每个步骤都有一个详细的答案。

–fossfreedom♦
2014年7月11日14:25



托蒂的新答案已经很棒

–rubo77
2014年7月12日在7:15

#2 楼

如何创建.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软件包创建控制文件

在文件夹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


或者如果您使用

debuild -k'your GPG key here' -S

构建.deb文件,那么您可以使用

dput ppa:<lp-username>/<ppa-name> packet-source.changes
将其上传到Ubuntu Launchpad

如此处所述(来源:从脚本或二进制文件创建.deb包)


安装新创建的.deb软件包。
可以使用software-center打开它,但可能不允许安装。所以我建议使用gdebi软件包管理器。

sudo apt-get install gdebi

gdebi "$HOME"/create_deb/hellodeb.deb


现在您可以安装它。在安装过程中,您应该会看到gtk对话框


安装程序:zenity_hello.sh ......




打开一个终端并输入zenity_hello。如果程序正确安装并且一切正常,您应该会看到gtk对话框


HELLO FROM PROGRAM




删除软件包

sudo apt-get remove zenity_hello



2分钟内发布您的存储库

由于OP希望采用一种简单的方式来发布其软件包,所以我给出了一个简单的技巧。

要求:带有公用文件夹的保管箱(或其他服务,例如github)。



在您的“公用”中创建一个文件夹-Dropbox-Folder,用于放置* .deb文件:

mkdir ~/Dropbox/Public/deb-packages  


,或在其他位置创建该文件夹,并将符号链接放在公共文件夹中:

mkdir ~/deb-packages
cd ~/Dropbox/Public
ln -s ~/deb-packages/ deb-packages



进入该文件夹并创建一个脚本,该脚本在执行时会创建Packages.gz,其中包含有关deb-packages的所有必需信息。
创建:

gedit import.sh  


放入其中:

#!/bin/bash
dpkg-scanpackages . /dev/null |gzip > Packages.gz


使其可执行:

chmod  x import.sh



复制一些* .deb文件放入文件夹。可能是您自己的,也可能是其他存储库无法提供的。然后进入Folder并执行我们放置在其中的脚本:



就这样了

现在,等待Dropbox同步Folder并从Packages.gz获取公共URL。它应该看起来像这样:

cd ~/deb-packages/ 
./import.sh


摆脱掉该链接的结尾,在其中添加一些文字,您现在可以使用并填充sources.list的以下行:您已经运行了自己的deb存储库。始终在本地同步,但任何人随时随地都可以使用。

评论


+1好极了!这行得通:我使用Github,那里是文件夹releases /的原始目录,请参阅github.com/rubo77/mouse-speed/blob/master/release/…

–rubo77
2014年7月9日在12:16



这描述了一个自托管的PPA,但是我如何构建Ubuntu debian软件包

–rubo77
2014年7月9日15:03



如果您在步骤7中使用debuild -us -uc -k'your GPG key here'来构建.deb文件,则可以使用dput ppa上传它:像此处所述的启动板(来源:从脚本或二进制文件创建.deb包)

–rubo77
2014年7月14日23:40



@ rubo77,谢谢,欢迎您在回答的结尾添加此信息。

–托蒂
2014年7月18日在8:53

好的,我刚刚做了,我也发现,您需要启动板其他参数才能立即不创建.deb文件(只是-S):debuild -k'your GPG key here'-S,因为启动板将创建deb文件(如果不被拒绝)--us -uc的作用是什么?

–rubo77
2014年7月18日在9:41



#3 楼

您将需要一个Launchpad.net帐户来创建PPA。只需在Launchpad上单击您的用户(单击左上角的名称)并创建PPA。您可能需要先签署《行为准则》,并在您的帐户中注册GPG密钥。