相关疑难解决方法(0)

如何获取和修改通过 apt-get 安装的软件包的源代码?

我假设通过安装的所有应用程序apt-get都是开源的;但是对于那些以这种方式可用的应用程序,我在哪里可以获得这些应用程序的源代码并更新它们?

我有几个我经常使用的应用程序不再被积极开发,我想添加功能。我从哪里获得更新这些应用程序的权利?

在这种情况下,我指的是helanzb

apt

188
推荐指数
4
解决办法
19万
查看次数

不同的包如何具有相同的源代码?

我最近了解到获取任何给定包的源代码是多么容易,apt-get source这样我就可以获取源代码、进行更改并安装我自己的任何包的修改版本。这很棒!

直到今天,我一直假设每个包都有自己的源代码,不同的包会有不同的源代码。

但是,现在我刚刚发现不同的包可以具有相同的源代码。下面是一个例子:

以下 4 个包似乎具有相同的源代码:

gir1.2-mutter-4
libmutter-4-0
mutter
mutter-common
Run Code Online (Sandbox Code Playgroud)

所有四个都安装在我的 Ubuntu 19.04 计算机上。这样做apt-get source gir1.2-mutter-4的结果与apt-get source libmutter-4-0, 以及muttermutter-common包的结果完全相同。

这是我检查它的方法:

mkdir a
cd a
apt-get source gir1.2-mutter-4
cd ..
mkdir b
cd b
apt-get source libmutter-4-0
cd ..
diff -r a b
Run Code Online (Sandbox Code Playgroud)

上面最后一行的递归差异没有给出任何输出,表明目录具有相同的内容。

现在我的问题是:不同的包如何具有相同的源代码?

假设这是故意的而不是某种错误,包之间有什么区别,我如何才能看到这种区别?

可能是这些包在配置和编译源代码的方式上有所不同,例如代码的不同部分包含在不同的包中吗?如果是这样,我在哪里可以找到有关如何配置每个包的信息?

编辑:忘了补充一点,如果你想测试这个,为了使其apt-get source正常工作,你可能首先需要software-properties-gtk按照这里的描述启用它:https : //askubuntu.com/a/857433/874649

编辑2:感谢您的出色回答!我还发现这很有帮助https://askubuntu.com/a/246721/874649 - 关于非常有用的apt-get build-depdpkg-buildpackage命令。修改源包的源代码后,dpkg-buildpackage -us -uc可用于构建可用于安装修改后的程序的新 …

package-management packaging software-installation

41
推荐指数
2
解决办法
7760
查看次数