configure是一个脚本,它能设置源程序来适应各种不同的操作系统平台,并且根据不同的系统来产生相应的makefile文件,Makefile 规定了用什么编译器、编译参数等信息。从而可以使你的源代码能在不同的操作系统平台上被编译出来。比如它会检测你是不是有CC或GCC。
在linux系统中安装软件的其中一种:源码安装的方法是,先输入./configure,然后输入make,最后make install这些软件的根目录中开始是没有Makefile的,在执行了./configure后会生成了很多奇怪名字的文件。
可以通过在 configure 后加上参数来对安装进行控制,比如代码:
./configure --prefix=/usr
上面的意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share.
如果你安装时候指定的路径为:
--prefix=/usr/local/XXX,那么卸载的时候只需要把XXX这个文件夹删除即可!!!!!,因为该软件安装的所有文件都是放置在XXX这个文件夹。但如果你进行源码包安装的时候没有指定位置(默认值一般为/usr/local/),或指定的位置为--prefix=/usr/local,则这时候你安装软件生成的文件将分别存储在/usr/local/里面的bin、lib或ect等目录中,这时候卸载起来就相对麻烦一点了。
可以通过 ./configure --help 察看详细的各个参数的说明。
make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。这条命令来进行安装(当然有些软件需要先运行 make check 或 make test来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件),以通常得用 sudo make install。.
当我们在使用make命令时,常常会在make后面加上其他单词,比如check,install,installcheck…这些单词都是make的参数,我们称之为“目标(targets)”。
最常见的几个目标:
make all:编译程序、库、文档等(等同于make)
make install:安装已经编译好的程序。复制文件树中到文件到指定的位置
make unistall:卸载已经安装的程序。
make clean:删除由make命令产生的文件
make distclean:同时删除./configure和make产生的临时文件
make check:测试刚刚编译的软件(某些程序可能不支持)
make installcheck:检查安装的库和程序(某些程序可能不支持)
make dist:重新打包成packname-version.tar.gz
configure这个脚本是从哪来的呢?
它其实是由autoconf和automake两个工具来生成的。和cmake一样用类似的方式最后生成makefile,不过cmake却简约很多。
补充:
linux下载软件安装的常用方式
在 Linux 上下载和安装软件有多种方式,具体使用哪种方式取决于软件的分发形式和你的需求:
1、包管理器:适合大部分常用软件,操作简单、自动管理依赖。
APT(Advanced Package Tool) – 适用于基于 Debian 系的发行版,如 Ubuntu、Debian。
YUM / DNF – 适用于基于 Red Hat 系的发行版,如 Fedora、CentOS、RHEL
2、从源代码编译:适合需要最新版本或自定义配置的软件,但要求一定的技术基础。
下载源码:从官方网站或 Git 仓库下载源码。
编译和安装: 通常,软件的源代码会附带 configure
脚本或 CMake
配置文件,用于配置编译选项。
3、Git 克隆:适合开发者获取最新源代码并参与开发。这种方式通常用于获取开源项目的源代码,特别是当你需要获取某个项目的开发版本时。
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
4、从官方网站下载预编译的二进制文件
有些软件项目会提供已经编译好的二进制文件,用户可以直接下载并运行这些文件,无需手动编译。
Linux 系统中,下载和管理**库(libraries)**和软件类似
1. 使用包管理器安装库
和安装软件一样,Linux 系统的包管理器是最常见和最方便的下载库的工具。常见的包管理器如 APT
(Debian/Ubuntu 系)、YUM/DNF
(Fedora/RHEL/CentOS)、Pacman
(Arch Linux)等。
2. 从源代码编译安装库
如果你需要最新版本的库,或者官方包管理器没有提供某个库的特定版本,你可以从源代码手动下载并编译库。许多库的开发者会在 GitHub、GitLab 或官方主页上发布源代码。
3. 使用 pkg-config
管理库
当你手动编译和安装库时,开发者往往依赖 pkg-config
工具来查找库的路径、版本和编译选项。pkg-config
可以帮助自动化管理库的头文件位置、库文件路径以及编译参数。
4. 从第三方源安装库
某些库可能没有包含在 Linux 发行版的官方仓库中,或者官方仓库中的库版本较旧。这种情况下,你可以使用第三方源或 PPA(个人包档案)来安装最新的库。
5. 使用 conda
管理库(适用于 Anaconda 环境)
如果你使用的是 Anaconda(一个流行的 Python 分发和环境管理工具),可以使用 conda
来管理和安装库。conda
支持安装 Python 包,也支持一些系统库的安装。