Linux:仅为当前用户安装的应用程序的安装目录

Posted

技术标签:

【中文标题】Linux:仅为当前用户安装的应用程序的安装目录【英文标题】:Linux: Installation directory of application installed only for current user 【发布时间】:2013-01-17 22:09:37 【问题描述】:

我有一个 Python 应用程序,当前安装在 Linux 文件系统标准层次结构 (FHS) 之后。它安装在:

/usr/bin/(可执行文件) /usr/lib/python2.x/site-packages/appname/(Python 库) /etc/appname/(配置文件) /usr/share/man/(手动文件)

现在,希望安装此应用程序的非 root 用户可以在没有 root 权限的情况下安装它,并且只有该用户可以运行该应用程序。我们认为最好将应用程序安装在用户主目录中。 我们已经在用户主目录中有一个.appname 目录来保存每个用户的配置文件,因为应用程序在/etc 中安装了配置文件。 我认为使用.appname 目录来保存所有应用程序文件不是一个好主意,因为目录预先附加了 .只保留配置文件。可能我会删除 .appname 目录,因为现在将按用户安装整个应用程序。

2 个想法:

创建appname 目录并创建子目录 bin 等、lib 和 share/man。 在home下复制Linux FHS并在lib等下创建app-name子目录 ~/bin/ ~/lib/appname ~/share/man/ ~/etc/appname

其中哪一种更常用且更值得推荐?欢迎每种替代方案的利弊。也许是第三种选择?

我看到人们推荐/home/usr/bin/home/usr/local/bin,但我不明白这里需要包含usr,因为不需要区分基本和非基本二进制文件/库。我更喜欢极简主义。

提前致谢。

【问题讨论】:

通常情况下,我会在 /opt(一个古老的 SUN 民间传说,IIRC)下安装手动编译的二进制文件和库等,以避免包管理器干扰。传统上,/usr/local/* 用于这种存储,但它不再安全了。如果您符合 FHS:向 FHS 确认并害怕包管理器;-] 【参考方案1】:

第一个选项是最常见的。第三种选择是在~/.local/(反映/usr)下创建(或填写)结构,该结构已被许多应用程序用于share/

【讨论】:

以上是关于Linux:仅为当前用户安装的应用程序的安装目录的主要内容,如果未能解决你的问题,请参考以下文章

Linux——命令行软件安装

Linux——命令行软件安装

Lesson 1-Linux安装及基础命令

linux下nodejs安装以及如何更新到最新的版本

Linux日志管理

Linux JDK安装步骤