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:仅为当前用户安装的应用程序的安装目录的主要内容,如果未能解决你的问题,请参考以下文章