Linux / Unix'make install'应包含哪些内容?

时间:2009-02-09 14:43:56

标签: linux unix installer makefile

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

ayane: *.cpp *.h
    g++ -Wno-write-strings -oayane *.cpp
到目前为止,直截了当;但是我理解通常采取第二步安装make。所以当我把make:target放在makefile中时......应该将什么命令与它相关联? (如果可能的话,我更喜欢它适用于所有Unix系统以及Linux。)

3 个答案:

答案 0 :(得分:37)

安装

一个不那么简单的安装程序会将多个内容复制到位,首先确保存在适当的路径(使用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个地方的内容,如果存在则将其删除。

答案 1 :(得分:3)

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

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

答案 2 :(得分:-7)

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

例如,在编译Vim时,make install可能会将其放在/ usr / local / bin

并非所有Makefile都有make install