我假设通过安装的所有应用程序apt-get
都是开源的;但是对于那些以这种方式可用的应用程序,我在哪里可以获得这些应用程序的源代码以及更新它们?
我有几个我经常使用的应用程序不再积极开发,我想添加一些功能。我应该去哪里获得更新这些应用程序的权利?
在这种情况下,我指的是helanzb包
我假设通过安装的所有应用程序apt-get
都是开源的;但是对于那些以这种方式可用的应用程序,我在哪里可以获得这些应用程序的源代码以及更新它们?
我有几个我经常使用的应用程序不再积极开发,我想添加一些功能。我应该去哪里获得更新这些应用程序的权利?
在这种情况下,我指的是helanzb包
使用命令
apt-get source <package>
(不要使用 sudo)来下载包的源代码。来自
man apt-get
:要从源代码构建包,首先安装构建依赖项:
然后用于
dpkg-buildpackage
创建.deb
文件。来自APT 和 Dpkg 快速参考表:在终端中,
cd
进入包含包源(例如~/code/hellanzb-0.13
)的目录并运行以下命令:如果构建成功,将有一个
.deb
位于父目录中的文件(例如
~/code/hellanzb_0.13-6.1_all.deb
)。通常,您可以按照以下过程获取已安装软件包的来源:
启用源存储库。打开仪表板(左上角按钮)并搜索
sources
. 这应该会启动Software & Updates
程序,运行它并确保您选择了“源代码”选项:打开终端并运行以下命令:
这会将 vlc 的源下载到您的当前目录,您可以在闲暇时查看它们。
当然,在 的情况下
vlc
,您也可以直接从 videolan.org 网站下载:https ://www.videolan.org/vlc/download-sources.html你可以
apt-get source --compile
直接使用:为我工作。.deb 最终出现在您运行命令的目录中。
hello
包装的最小示例所有这些以及更多内容都在以下位置进行了描述:https ://www.debian.org/doc/manuals/maint-guide/build.en.html
首先让我们获取一个示例包来修改源代码:
输出:
现在让我们破解它。获取源码:
并打开:
并将消息修改为:
然后对测试执行相同的操作,否则烦人的测试将开始失败:
然后重建:
在输出接近尾声时,它说:
所以它在父目录上创建了.deb,怎么敢。所以最后我们安装并测试修改后的包:
你去那里,它输出新消息:
在 Ubuntu 18.04 上测试。
旧
bzr
答案TODO:这停止在 Ubuntu 16.04 Xenial 上工作,失败:
bzr: ERROR: Not a branch: "bzr+ssh://bazaar.launchpad.net/+branch/ubuntu/hello/".
.bzr branch lp:ubuntu/wily/hello
工作并bzr branch lp:ubuntu/xenial/hello
再次失败。由于某种原因https://code.launchpad.net/ubuntu/+source/hello不显示 Xenial:https ://web.archive.org/save/https://code.launchpad.net/ubuntu/+source /你好如https://askubuntu.com/a/81889/52975所述,还有一种特定于 Ubuntu 的方法
bzr
。获取最新版本:
具体版本:
您还可以使用
pull-lp-source
:然后你就可以编辑它了:
重建它:
并安装它:
Ubuntu 打包指南是一个很好的信息来源。
要获取有关软件包的更多信息,包括上游 URL 和项目/程序联系人,您可以查看版权文件(引用自packages.debian.org)。
当软件包包含并安装在您的系统上时,您还可以直接在
/usr/share/doc/$package_or_program_name/copyright
.看看如何下载 Debian 软件包的源代码?.