我是超过 15 年的 Linux 用户,但我非常讨厌的一件事是强制的目录结构。我不喜欢那/usr/bin
是二进制文件或库的倾销地/usr/lib
,/usr/lib32
,/usr/libx32
,/lib
,/lib32
等...随机的东西在/usr/share
等,这是愚蠢和混乱。但有些人喜欢它,口味不同。
我想要一个目录结构,其中每个包都是隔离的。想象一下,如果媒体播放器龙有自己的结构:
/software/dragon
/software/dragon/bin/x86/dragon
/software/dragon/doc/README
/software/dragon/doc/copyright
/software/dragon/lib/x86/libdragon.so
Run Code Online (Sandbox Code Playgroud)
或者:
/software/zlib/include/zlib.h
/software/zlib/lib/1.2.8/x86/libz.so
/software/zlib/lib/1.2.8/x64/libz.so
/software/zlib/doc/examples/...
/software/zlib/man/...
Run Code Online (Sandbox Code Playgroud)
你明白了。我有哪些选择?有没有使用类似于我的方案的 Linux 发行版?可以修改某些发行版以使其像我想要的那样工作(Gentoo ??)还是我需要 LFS?在这个领域有任何现有技术吗?喜欢关于该计划是否可行或不可行的出版物?
不是在寻找 OS X。:) 但受OS X 启发的完全没问题。
编辑:我不知道如何PATH
,LD_LIBRARY_PATH
以及依赖于一小部分的路径应制定其他环境变量。我在想,如果我安装了 KDE 编辑器Kate,/software/kate/bin/x86/bin/kate
那么我就可以输入二进制文件的完整路径来启动它。它应该如何用于动态库和dlopen
调用,我不知道,但它不可能是一个无法解决的工程问题。
我的 中有以下块/etc/hosts
:
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Run Code Online (Sandbox Code Playgroud)
它们是由 Ubuntu 中的一些 automagic 插入的,而不是我写的。我发现很多文件都说你应该有这些行。但为什么?为什么他们是可取的?
我的怀疑是它们不是,而且只是粗糙的(除了第一个)。因为如果你用谷歌搜索其中一个名称,例如ip6-allrouters
,你找到的只是对它们的引用,/etc/hosts
但实际上没有人使用它们。
表述这个问题的另一种方式是,如果我删除这些行,会对我造成什么伤害或哪些功能将无法正常运行?如果答案是none,我们是否可以得出它们是多余的结论?