cod*_*bie 2 fedora software-installation
我想知道make install
在我刚刚编译了一个源包后成功运行这个命令后,我的系统会意识到新安装的包是什么。
让我们假设我已经从某个地方为我的发行版检索了一个预编译的 Linux 包,并且想要使用install
而不是仅仅cp
安装整个解压缩的包,/usr/local
并确保我sudo make install
为这个包执行典型的所有操作。我尝试运行sudo install -r -T ./[pre-compiled package] /usr/local
旨在将所有内容递归复制到/usr/local
,但它失败了,似乎什么也没做。
make install
执行名为目标列出的命令install
中./Makefile
(以及该安装任何其他尚未完成的目标的命令取决于-例如安装目标通常依赖于编译目标(S))。正如@Henrik 所说,这些可以是任何东西……复制文件、创建目录、设置所有权和/或权限、创建或复制初始配置文件等等。
顺便说一句,make install
和install
命令是两个完全不同的事情。前者执行名为“install”的 Makefile 目标。后者是类cp
固醇的一种奇特版本,可以设置所有者、组、权限,并执行许多其他在安装软件时有用的东西——install
通常由 Makefile 中的安装目标使用。
无论如何,make
并且make install
与您想要做的事情几乎无关 - 安装预编译软件。
要安装预编译软件,如果您有发行版的软件包(例如 a.rpm
或.deb
文件),则使用发行版打包工具安装它 - 例如dpkg
在 debian/ubuntu、rpm
fedora 等上。如果您没有副本包还没有,但它是可以作为一个包你的发行版,然后使用apt
(Debian的)或dnf
或yum
(Fedora的)来获取并安装它。
对于不是适当发行版软件包的预编译软件(例如包含一堆文件的 tar.gz),并且您找不到源代码或软件包,最好的选择是使用像GNU这样的程序斯托或类似。
stow
使安装未打包的软件变得相当容易,并且仍然能够在以后卸载它(例如准备升级到新版本)而不会留下大量孤立文件......这正是简单的解压缩或cp将做。
非托管软件一团糟,等待发生。如果可能,请使用系统提供的打包工具。如果没有,请使用类似stow
.
我昨天写这篇文章时打算提到的另一个程序是checkinstall,但直到现在我才想起它的名字。 checkinstall
使您可以轻松制作功能性(如果不完美)的任何软件的软件包,否则您将使用make install
. 它对于仅二进制预编译的程序(例如专有软件)用处不大,但在源代码可用时非常有用。
归档时间: |
|
查看次数: |
1299 次 |
最近记录: |