![“install”命令可以帮助我将构建目录合并到根文件系统中吗?](https://linux22.com/image/227630/%E2%80%9Cinstall%E2%80%9D%E5%91%BD%E4%BB%A4%E5%8F%AF%E4%BB%A5%E5%B8%AE%E5%8A%A9%E6%88%91%E5%B0%86%E6%9E%84%E5%BB%BA%E7%9B%AE%E5%BD%95%E5%90%88%E5%B9%B6%E5%88%B0%E6%A0%B9%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E4%B8%AD%E5%90%97%EF%BC%9F.png)
我已经成功地从源代码构建了一个项目并想使用它。由于各种原因,我没有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。无论哪种方式,您都需要确保适当的所有权和权限。