由于预编译的二进制文件只是可移植的文件:在不使系统混乱的情况下手动存储它们的合适位置是什么?
通常的地方是/usr/local
或/opt
更大的完整应用程序。
我将所有自动编译的应用程序放入/usr/local/stow/application_name
,使用make install
或类似命令复制整个层次结构。
然后使用stow
它们来管理符号链接。优点是所有路径(二进制,库)都是开箱即用的,并且应用程序被很好地分隔开了,我可以轻松地再次删除它们。
这也是我将预编译的二进制文件放在的bin
子目录中的位置application_name
。
由于预编译的二进制文件只是可移植文件
我不懂你的意思 预编译的二进制文件都非常不便于携带,这取决于它的架构,他们编制了。您也不知道它们针对哪个librarie版本进行编译。在该版本中,这些库可能在您的系统上不存在。
对于您的Pomotroid示例,如果要在计算机上使用此功能,请执行以下操作:
他们有一个.deb
软件包,我使用Debian发行版,所以我将下载并安装在我的系统上。
下一个变体是克隆存储库/usr/local/src/pomotroid
,在其中运行构建,修改要使用/usr/local/stow/pomotroid
的安装过程,运行安装过程,然后使用stow
。这就是我处理系统上大多数自编译软件的方式。
第三种变体是将rpm
软件包的构建过程添加到存储库中,发出拉取请求,并rpm
在将来为我(以及需要rpm
软件包的其他所有人)提供发行软件包。
第四个变体是获取分布式的tar文件,将其解压缩为/usr/local/app/pomotroid
(/opt/app/pomotroid
也可以),然后编写一个脚本,该脚本LD_LIBRARY_PATH
在执行其中的主程序之前进行设置(从未尝试过安装电子应用程序) 。
tar文件包含许多动态库,我在系统上也可能存在不同版本的动态库,因此,我确实不只是希望这些动态库出现在默认库路径中,以供其他程序使用-这可能会严重干扰我的工作。系统。
如果我想定期将其更新为最新版本,则可以开始编写安装过程的脚本,或者花一些时间来rpm
构建软件包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句