![Linux debian 包管理器更新 $PATH](https://linux22.com/image/164219/Linux%20debian%20%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8%E6%9B%B4%E6%96%B0%20%24PATH.png)
我目前正在使用 dpkg 来管理我们软件的安装,并希望安装到 /usr/bin/ 下的文件夹中,因为我认为将我们系统的所有软件放在单独的子文件夹中很方便,这会立即与 /usr/bin/ 中的其他软件不同。
我想知道如何配置 debian 包管理器来更新路径以包含这个新的子文件夹,例如 /usr/bin/mysystem/。
有人可以帮忙吗?
谢谢。
答案1
我目前正在使用 dpkg 来管理我们软件的安装,并希望安装到 /usr/bin/ 下的文件夹中,因为我认为将我们系统的所有软件放在单独的子文件夹中很方便,这会立即与 /usr/bin/ 中的其他软件不同。
这是一个坏主意,并且违反了惯例文件系统层次结构标准。至少,在/usr/local/bin/
or内部添加符号链接/usr/bin/
(另请参阅更新替代方案(1))
尝试让您的软件由某个单一命令驱动(例如git
做)或至少有一个公共目录/opt/Foo/
(例如/opt/Foo/bin/
用于可执行文件,并要求您的用户添加/opt/Foo/bin/
到他/她的$PATH
)
我想知道如何配置 debian 包管理器来更新路径以包含这个新的子文件夹,例如 /usr/bin/mysystem/。
/bin/zsh
这是不可能的,黑客攻击取决于您用户的登录 shell(与和不同/bin/bash
)。请参阅chsh(1)命令和环境(7)和执行(3)或者执行(2)(由 shell 使用)。用户可以设置自己的交互的$PATH
例如在~/.bashrc
(如果他的登录 shell 是 /bin/bash
)或~/.zshrc
(如果他的登录 shell 是/bin/zsh
)等......
阅读更多关于Unix shell并且至少重击(1)。查看现有 shell 的源代码,例如GNUbash
或者桀骜或者英语或者鱼,了解更多。他们经常自由软件(或者至少是开源的)。使用跟踪(1)在你自己的 shell 上了解更多系统调用(看系统调用(2)) 被它调用。
读一些有关操作系统的教科书。
或许可以从中汲取灵感ssh-代理(1)。有时,我的一些 shell 脚本中有eval $(ssh-agent -s)
,例如使用
startx
。