最佳实践:在哪里安装 Linux 软件包

Rad*_*mko 0 linux opensuse compile proftpd

编译时安装所有包文件的最佳路径在哪里?

例如 - 我想安装 ProFTPd,所以有一个选项

--prefix=/usr/local/proftpd
Run Code Online (Sandbox Code Playgroud)

,这意味着编译后的所有文件(包括二进制文件和配置文件)都会存储在这里。如您所知,所有通过软件包系统安装的软件包(如 SuSE 上的 zypper 或 Ubuntu 上的 apt)通常将其配置文件存储在 /etc/ 中,将二进制文件存储在 /sbin/ 中,并将链接存储在我的 $PATH 中,因此我只需输入 proftpd(不带 /sbin)即可运行。

我认为,通过包系统安装的包的巨大优势是易于卸载过程。我希望能够也轻松地卸载已编译的软件包。

我想我可以创建一些批处理文件,我可以这样使用:

uninstall --package=proftpd
Run Code Online (Sandbox Code Playgroud)

我的脚本将在通常的路径(/etc、/sbin)中找到所有 proftpd 文件并使用 rm 将其删除。

是否有任何最佳实践,在哪里存储所有这些文件,或者我的第一个示例(--prefix=/usr/local/proftpd)是否有任何(dis)优势?

我真的不认为,有 2 个带有配置文件和二进制文件的路径很好,但也许我误解了 Linux 的基本原理...... :-)

Ign*_*ams 11

文件系统层次标准

发行版得到/usr,你得到/usr/local,ISV 得到/opt

  • 在 /sbin 下安装的一个缺点 - 一些 linux 发行版期望最低限度在 /bin、/sbin 和 /lib 中启动系统,然后在 /usr/bin、/usr/sbin 和 /usr 下启动所有其余命令/lib. 一些发行版会创建一个非常小的分区来存储 / 下的内容,然后创建一个更大的分区来存储 /usr 下的内容。因此,请检查 /sbin 下的可用空间 - 它可能有限。 (3认同)