假设我使用 Ubuntu 软件中心安装了一个 Debian 软件包,然后假设我希望通过从源代码编译来安装相同的程序。那么我可以直接通过从源代码编译来安装相同的程序吗?这会取代通过 deb 软件包安装的先前版本吗?
答案1
Debian 软件包通常将二进制文件和库安装在 /usr/bin/ 和 /usr/lib 目录中。而当您从源代码编译软件时,您可以指定要安装的目录的前缀。通常,/usr/local/bin/ 和 /usr/local/lib 目录是标准 gnu 软件 /foss(事实上的标准)中的默认目录。您可以在运行 configure 命令时通过指定前缀来编译软件。例如,假设您想将软件安装在 /usr/local/ 前缀中,您应该运行以下命令:
- ./configure --prefix=/usr/local
- 制作
- 安装
您可以将 --prefix 指定为任何目录,例如,它可以是 ~/.local/ 或任何其他目录。
现在,您有两个同名但安装在不同目录中的二进制文件。当您调用命令(二进制文件)名称时,将使用其中哪一个,取决于您的 shell 的 PATH 变量。如果您安装软件的目录在 PATH 变量值中的标准 /usr/bin/ 目录之前,它将运行,而 debian one 将不会运行。通过echo $PATH
在终端中运行来检查 PATH 变量。