Stow - 无配置脚本

Stow - 无配置脚本

在程序 GNU Stow(符号链接场管理器/包管理器/无论您想如何称呼它)中,您可以运行以下命令将包安装到/usr/local

./configure --prefix=/usr/local
make
sudo make prefix=/usr/local/stow/foo-1.2 install # well not nessecarily sudo but this is personal preference 
cd /usr/local/stow
sudo stow foo-1.2 # you have to have sudo here

基本上,您是在欺骗软件包,以便程序链接到/usr/local,但它实际上安装在/usr/local/stow/foo-1.2.

但如果有的话怎么办没有配置脚本?那我该如何欺骗它呢?一些没有配置脚本的著名程序:

  • bzip2(这是我为其编写问题的程序)
  • R(编程语言)

答案1

首先,使用时stow GNU autotoolsconfigure脚本,使用

$ ./configure --prefix=/usr/local/stow/package-version

这样,当您调用make.

bzip2附带一个现成的 Makefile。它还具有一个README文件,准确解释了如何将其安装在非标准位置:

HOW TO BUILD -- UNIX

Type 'make'.  This builds the library libbz2.a and then the programs
bzip2 and bzip2recover.  Six self-tests are run.  If the self-tests
complete ok, carry on to installation:

To install in /usr/local/bin, /usr/local/lib, /usr/local/man and
/usr/local/include, type

   make install

To install somewhere else, eg, /xxx/yyy/{bin,lib,man,include}, type

   make install PREFIX=/xxx/yyy

这意味着您可以使用

$ make install PREFIX=/usr/local/stow/bzip2-1.0.6

如果你希望。

R 附带了一个configure脚本,至少在我下载用于测试的版本 3.4.1 的源代码发行版中是这样。

使用 CMake 构建的程序可以使用以下命令安装在可配置位置

$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr/local/stow/package-version .
$ make && sudo make install

如果 GNU 自动工具尚未用于创建configure脚本,并且它不是 CMake 项目,那么请阅读有关如何安装该程序的README和/或文件(尽管如此,您显然应该这样做)。INSTALL大多数节目能够很容易地安装在非默认位置。

如果情况变得更糟,只需阅读 Makefile。

相关内容