“install”命令可以帮助我将构建目录合并到根文件系统中吗?

“install”命令可以帮助我将构建目录合并到根文件系统中吗?

我已经成功地从源代码构建了一个项目并想使用它。由于各种原因,我没有make install可用的简单命令,但我注意到构建过程的足够部分做过success 已经将我需要的所有内容收集到一个install/子目录中:

~/msp430-gcc-9.3.1.11-source-full/install
└── usr
    └── local
        ├── bin
        │   ├── msp430-elf-addr2line
        │   ├── msp430-elf-ar
        │   ├── msp430-elf-as
        │   ├── msp430-elf-c++
        …   …   …

现在我可以添加~/msp430-gcc-9.3.1.11-source-full/install/usr/local/bin到我的PATH并完成,但由于这基本上是一个专用于这个特定项目的类似虚拟机的主机,我有点想实际安装我在系统范围内构建的内容。

我想也许旧的 Unixinstall命令可能适合这个任务,但事实上它没有任何内置的递归选项,并且并不比对单个文件执行cp+更奇特。chmod

有没有一种优雅的方法来“正确”地将这个构建子树合并到我的根文件系统中,或者我应该只是rsync这个“安装”文件夹/并称之为好的?

答案1

install 命令没有什么神奇之处。与介绍中man install建议的不同,它实际上只是复制文件(还可以选择 chown、chmod、strip、mkdir...)——因此您也可以使用 rsync 或 cp。无论哪种方式,您都需要确保适当的所有权和权限。

相关内容