我在哪里存储预编译的二进制文件?

我在哪里存储预编译的二进制文件?

由于预编译的二进制文件只是可移植文件:手动存储它们而不会使我的系统混乱的正确位置是什么?

答案1

通常的地方是/usr/local/opt用于更大的完整应用程序。

我将所有自编译的应用程序放入/usr/local/stow/application_name,使用make install或一些类似的命令来复制整个层次结构。

然后使用stow它们来管理符号链接。优点是所有路径(二进制、库)都可以开箱即用,并且应用程序很好地分开,我可以轻松地再次删除它们。

bin这也是我将预编译的二进制文件放入application_name.

由于预编译的二进制文件只是可移植文件

我不知道你的意思。预编译的二进制文件非常多不是可移植,这取决于它们是为哪种架构编译的。您也不知道它们是为哪些库版本编译的。在该版本中,您的系统上可能不存在这些库。


对于您的 Pomotroid 示例,如果我想在我的计算机上使用它,我会这样做:

  1. 他们有一个.deb软件包,而我使用的是 Debian 衍生的发行版,所以我只需下载它并将其安装在我的系统上。

  2. 下一个变体是克隆 下的存储库/usr/local/src/pomotroid,在其中运行构建,修改安装过程以使用/usr/local/stow/pomotroid,运行安装过程,然后使用stow。这就是我处理系统上大部分自编译软件的方式。

  3. 第三种变体是将rpm包构建过程添加到存储库,发出拉取请求,并rpm在将来为我(以及需要包的其他人rpm)提供发布包

  4. 第四种变体是获取分布式 tar 文件,将其解压为类似的文件/usr/local/app/pomotroid/opt/app/pomotroid也可以),然后编写一个脚本,LD_LIBRARY_PATH在执行其中的主程序之前进行设置(之前从未尝试过安装电子应用程序) 。

tar 文件包含相当多的动态库,我的系统上也有可能不同版本的动态库,所以我真的不只是希望它们出现在默认库路径中以供其他程序拾取 - 这可能会严重搞乱我的系统。

如果我想定期更新到最新版本,我要么开始编写安装过程的脚本,要么花一些时间来rpm构建一个包。

相关内容