我最近了解到获取任何给定包的源代码是多么容易,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, 以及mutter和mutter-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-dep和dpkg-buildpackage命令。修改源包的源代码后,dpkg-buildpackage -us -uc可用于构建可用于安装修改后的程序的新 …
我正在使用 Ubuntu 19.04。当我需要安装一些新包时,我通常通过sudo apt install从命令行运行来完成。为了保持更新,我使用“软件更新程序”(更新管理器),有时它会弹出来提醒我,有时我会自己运行它以确保一切都是最新的。
但是,最近我安装了一些软件包snap install而不是 apt,现在我不确定是否应该运行“软件管理器”以外的其他东西来确保所有内容都已更新。
“软件更新程序”是只更新使用 apt 安装的软件,还是也更新使用 snap 安装的软件?
除了“软件更新程序”之外,我还需要运行其他东西吗?如果需要,怎么办?
另外:混合“apt”和“snap”安装方式是不是一个坏主意?
我正在使用 Ubuntu 19.04 (Disco Dingo)。我的问题和这个老问题一样:How to restart X Window Server from command line?
但是,那里备受赞誉的答案对我不起作用。当我sudo systemctl restart display-manager按照那里的建议运行时,窗口系统重新启动,但之后我无法登录,似乎每次登录尝试时窗口系统都会再次重新启动。那么我无论如何都需要重新启动才能使事情再次发挥作用。所以这并没有达到我想要的。我想要的是能够在不重新启动系统的情况下重新启动窗口系统。
旧答案中的另一个建议是通过执行检查使用哪个显示管理器cat /etc/X11/default-display-manager(在我的情况下,这给出了/usr/sbin/gdm3)然后运行,sudo restart gdm但这给了我一条错误消息:sudo: restart: command not found。
有没有办法在 Ubuntu 19.04 中重新启动 X 窗口系统而无需完全重启,然后能够再次登录?
编辑:我也试过,systemctl restart gdm但出现了同样的问题sudo systemctl restart display-manager——窗口系统重新启动,但之后我无法登录,需要重新启动才能再次运行。