新源安装在现有源之上

新源安装在现有源之上

我的计算机上安装了 Slackware,并且从源代码安装了很多软件。现在我想ffmpeg从源代码安装只是为了使用更多选项重新编译它。但我已经ffmpeg在我的计算机上安装了,那么会发生什么呢?

它会覆盖我的旧安装还是会创建新文件,如果是这样,我如何区分两个安装的版本。

另外,如果有更好的方法在 Slack 上重新编译程序,请告诉我,因为我非常感兴趣。

答案1

如果您使用configure, make,make install例程在任何 Linux 发行版下安装软件,那么新版本将通常覆盖以前的。唯一需要注意的是,如果新版本碰巧更改了某些文件的安装位置或名称,那么您最终可能会在计算机上保留旧版本或旧版本的一部分。

因此,不建议在 Slackware 上以这种方式安装程序。推荐的做法是创建一个可以使用标准 Slackware 软件包安装程序安装的.txz或软件包。这也意味着您可以使用 干净地卸载软件包或升级到新版本。许多用于编译和创建包的脚本(包括用于 ffmpeg 的脚本)可以在以下位置找到:.tgzinstallpkgremovepkgupgradepkgSlackBuilds。使用同一目录中的源运行提供的脚本将编译并生成一个.txz.

大多数 Slackware 用户大量使用 Slackbuilds 来安装非官方软件。

答案2

如果您下载源代码(即不是来自您的发行版的软件包),它通常会包含一个配置脚本,该脚本允许您指定安装已编译软件的位置。这通常默认为/usr/local.您可以使用以下选项更改此设置:

$ ./configure --prefix=/foo

并非所有软件都是这样完成的,但不这样做也是不寻常的。由于您的发行版在 /usr 下安装软件,这意味着您的系统上将有两个版本。如果您将 ffmpeg 安装到 /opt/ffmpeg,则只需将二进制目录(可能是 /opt/ffmpeg/bin)添加到您的 PATH 中。

如果您确实对源代码感兴趣,请查看 Linux From Scratch 和 Gentoo。

答案3

您可以使用make(无需安装)来编译源代码、测试它们等。然后您可以使用它make install来将新的构建文件放入系统中。

相关内容