能详细说说你们在个人桌面系统上是怎么实践 FHS 的吗?

2022-09-16 21:37:22 +08:00
 0o0O0o0O0o
2190 次点击
所在节点    Linux
13 条回复
zzzsy
2022-09-16 21:50:03 +08:00
直接用 Nix OS (🐶
aloxaf
2022-09-16 21:51:15 +08:00
有点不理解,这玩意儿需要个人来实践吗?发行版是怎么干的就只能跟着吧?
0o0O0o0O0o
2022-09-16 22:18:39 +08:00
@aloxaf #2

例如按照我的理解,像 v2ray-core 这样的编译好的可执行文件应该放到 `/opt`?但是 https://github.com/v2fly/fhs-install-v2ray 这个项目又是放在 `/usr/local` ,我也跟着做了,但我不理解。。。

又例如 https://www.jetbrains.com/toolbox-app/ ,它会在 `$HOME/.local/share/JetBrains/Toolbox/apps` 安装可执行文件,这种情况符合 FHS 吗?
aloxaf
2022-09-16 23:42:48 +08:00
@0o0O0o0O0o #3
v2ray-core 这种单文件要么放 /usr/bin (自己打包) 要么放 /usr/local/bin (直接 make install ) 吧,opt 我认为是放那些有着自己的目录结构要求、没办法遵循 FHS 的软件,比如 non-free 软件

FHS 似乎没有规定用户软件该怎么装,这里或许应该适用 The XDG Base Directory Specification
littlewing
2022-09-16 23:46:19 +08:00
用 arch 不用担心这个问题,所有东西仓库里都有
Jirajine
2022-09-17 00:29:41 +08:00
手动安装的放 usr/local/bin ,jb toolbox 安装的应该算是“绿色版”,放 xdg data 目录也是遵守标准的。
baobao1270
2022-09-17 05:32:23 +08:00
感觉 FHS 太理想化了,实际上很少有完全遵循 FHS 的发行版……我的做法是,个人的直接塞 home 目录,一般 root 权限运行的服务器文件放 /app ,非 root 权限运行的服务放 /home/app-name/server
ruidoBlanco
2022-09-17 07:41:15 +08:00
标准未必是合适的。我的原则是,如果自己装的系统软件,放 /usr/local/bin ,自己装的用户级软件,放 ~/.bin
julyclyde
2022-09-17 09:04:37 +08:00
@baobao1270 正经发行版“本身”肯定都遵守 FHS

@0o0O0o0O0o 外来软件遵守这一段 https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch03s13.html
julyclyde
2022-09-17 09:05:06 +08:00
@ruidoBlanco 标准是为了保证互操作性,减少记忆负担
你自己个人的机器当然不打算给别人用啊,所以就以自己用着舒服为准
ruidoBlanco
2022-09-17 11:24:45 +08:00
@julyclyde 记忆标准也是记忆负担。就我看到业界使用的状况是,几乎没有人严格按照标准来,各玩各的套路,有的玩得挺好的,有的一团糟。很多时候并不能指望安装软件的人明白怎么做合适,人家也许只是个常年 Windows 下码字的。
julyclyde
2022-09-19 09:52:35 +08:00
@ruidoBlanco 因为只有不标准的才会引起注意
正常人谁会关注 ls 命令放在哪,chown 命令放在哪呢
yanqiyu
2022-09-19 10:08:23 +08:00
系统级程序自己打包安装,打包就按照发行版的 guidelines 完成,自然就保证了遵守 FHS
用户级程序 PREFIX=~/.local, 也就无所谓结构了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880687

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX