Linux / Unix“安装”应包含哪些内容?

我写了一个C ++程序(命令行,可移植的代码),我试图在Windows版本的同时发布一个Linux版本。 我写了一个makefile如下:

 ayane:* .cpp * .h
     g ++ -Wno-write-strings -oayane * .cpp

直截了当地到目前为止; 但我明白这是习惯有第二步,使安装。 所以,当我把安装:目标在makefile中…应该与什么命令相关联? (如果可能的话,我宁愿它可以在所有Unix系统和Linux上工作。)

Solutions Collecting From Web of "Linux / Unix“安装”应包含哪些内容?"

安装

一个不那么简单的安装程序会复制几件事情,首先确保存在适当的路径(使用mkdir -p或类似的)。 通常是这样的:

  • 可执行文件将进入$INSTALL_PATH/bin
  • 为外部消费而构建的任何库都在$INSTALL_PATH/lib$INSTALL_PATH/lib/yourappname
  • 手册页进入$INSTALL_PATH/share/man/man1 ,如果合适的话可能还有其他部分
  • 其他文档在$INSTALL_PATH/share/yourappname
  • 默认配置文件进入$INSTALL_PATH/etc/yourappname
  • 其他链接的标头为$INSTALL_PATH/include/yourappname

安装路径

INSTALL_PATH是构建系统的输入,通常默认为/usr/local 。 这使您的用户能够灵活地安装在他们的$ HOME下,而无需提高权限。

在最简单的情况下使用

 INSTALL_PATH?=/usr/local 

在makefile的顶部。 然后用户可以通过在shell中设置一个环境变量来覆盖它。

卸载

你偶尔也会看到make install来建立一个清单来帮助卸载。 舱单甚至可以写成一个脚本来完成这项工作。

另一种方法是使用make uninstall来查找make install位置,然后删除它们(如果存在的话)。

在最简单的情况下,您只需将新创建的可执行文件复制到/usr/local/bin路径。 当然,这通常比这更复杂。

请注意,大多数这些操作需要特殊的权利,这就是为什么通常使用sudo调用make install原因。

make install通常是将“二进制”安装到正确位置的步骤。

例如,在编译Vim时,make install可能会把它放在/ usr / local / bin中

并不是所有的Makefiles都有make install