如何避免手动获取 ~/.profile 或 ~/.bashrc 以使“LD_LIBRARY_PATH”正常工作?

Rap*_*l10 2 command-line .profile bashrc 23.10

我意识到我需要手动source ~/.bashrc归档或手动source .profile归档才能使.bashrc文件中指定的设置生效。以下是对完整~/.bashrc文件的一些补充:

export LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib/wx
export LD_LIBRARY_PATH=/usr/local/lib/wx/3.3.0

export LD_LIBRARY_PATH=/home/raphy/wxWidgets
Run Code Online (Sandbox Code Playgroud)

.bashrc需要注意的是,我遇到了仅针对库的非永久设置的问题wxWidgets,为此我添加了最后四行。

我评论了wx库路径.bashrc并添加了这些行 /etc/ld.so.conf.d/wx.conf并运行sudo ldconfig

raphy@raohy:/etc/ld.so.conf.d$ sudo ldconfig
raphy@raohy:/etc/ld.so.conf.d$ cat wx.conf 
export LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH=/usr/local/lib/wx
export LD_LIBRARY_PATH=/usr/local/lib/wx/3.3.0
Run Code Online (Sandbox Code Playgroud)

但问题仍然存在。

我必须做什么才能避免手动执行source ~/.profilesource ~/.bashrc

Raf*_*ffa 5

这些库路径可能应该放在/etc/ld.so.conf.d/...下的配置文件中,因此mylibs.conf在该目录下创建一个文件,然后将这些路径每行添加一个路径(没有冒号,没有引号,没有export和没有LD_LIBRARY_PATH=...只是裸路径),例如:

/usr/local/lib
/usr/local/lib/wx
/usr/local/lib/wx/3.3.0
Run Code Online (Sandbox Code Playgroud)

...并保存文件。

请注意,这些应该是包含库文件的目录的路径,而不是库文件本身的路径。

之后,运行:

sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

...然后重新启动。

...并将它们从~/bashrc良好的实践中删除,并且不要在太多地方定义一些东西,以免以后无法跟踪它们。