Linux下 config/configure/Configure、make 、make test/make check、sudo make install 的作用

  • 这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤
  • config/configure/Configure
    • 这个是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本
    • 这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如:
      • ./configure --prefix=/usr
      • 上面的意思是将该软件安装在 /usr 下面
      • 执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin)
      • 资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)
      • 同时一些软件的配置文件你可以通过指定 --sys-config= 参数进行设定
      • 还有诸如:--with、--enable、--without、--disable 等等参数对编译加以控制,你可以通过 ./configure --help 察看详细的说明帮助
  • make
    • 这一步是用来编译的,它从Makefile中读取指令,然后编译
    • 这一步就是编译,大多数的源代码包都经过这一步进行编译
    • 当然有些perl或python编写的软件需要调用perl或python来进行编译
    • 如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码
  • make test / make check
    • 顾名思义,这一步就是对上一步 make 的检查了,要确保 make 是没有错误的,也就是这一步的 test、check要全部是 OK 的,error 为0
  • sudo make install
    • 这一步是用来安装的,它也从Makefile中读取指令,安装到指定的位置
    • 这条命令来进行安装,一般需要你有 root 权限(因为要向系统写入文件),所以前面用了 sudo

  • AUTOMAKE和AUTOCONF是非常有用的用来发布C程序的东西。如果你也写程序想使用AUTOMAKE和AUTOCONF,可以参考CNGNU.ORG上的相关文章
### Ubuntu 手动编译并安装软件教程 在 Ubuntu 系统上手动编译并安装软件通常涉及以下几个方面:获取源代码、配置环境变量、编译以及最终的安装过程。以下是详细的说明: #### 获取源代码 首先需要下载目标软件的源代码包,这可以通过官方站点或者版本控制系统(如 Git)完成。例如,对于 `tcpdump` 和其依赖库 `libpcap` 的安装,可以访问它们各自的官方网站或镜像仓库来下载最新稳定版的压缩文件。 #### 配置开发环境 确保系统已经具备必要的构建工具链,比如 GCC 编译器套件和其他辅助程序。如果尚未安装这些基本组件,可运行如下命令进行初始化设置: ```bash sudo apt update && sudo apt upgrade -y sudo apt install build-essential libtool autoconf automake pkg-config git wget -y ``` #### 解压与进入工作目录 假设已成功下载了一个 tarball 文件到本地磁盘位置 `/path/to/source.tar.gz` ,那么解压操作如下所示: ```bash tar xf source.tar.gz cd source-directory-name/ ``` #### 运行 configure 脚本 大多数开源项目都提供了一种名为 `./configure` 的脚本来检测当前平台特性,并生成适合该系统的 Makefile 。此阶段还可以指定自定义选项,例如更改默认前缀路径等参数。 ```bash ./configure --help # 查看可用选项列表 ./configure --prefix=/opt/custom-installation-path # 自定安装路径实例 ``` #### 构建二进制文件 一旦完成了上述准备工作之后便能调用 GNU Make 工具来进行实际的目标对象创建流程了。 ```bash make clean # 清理旧有残留物(如果有) time make -j$(nproc) # 并行加速模式下的正式制造环节 ``` #### 测试验证 部分大型工程会附带单元测试集用于确认功能正常与否,在提交给生产之前建议先执行一遍检验动作。 ```bash make check # 或者某些情况下可能是 'make test' ``` #### 正式部署 最后一步就是把刚才制作出来的成果安置至相应的位置上了;一般而言这是管理员权限专属的任务范畴之内。 ```bash sudo make install # 将产物放置于标准共享区域里去 ``` 以上即为整个基于 Linux 发行版之上的典型手工组装应用程序的标准套路概述[^1][^2][^3]。 ```python print("Example Python Installation Script") def python_install(): commands = [ "wget https://www.python.org/ftp/python/X.Y.Z/Python-X.Y.Z.tgz", "tar xzf Python-X.Y.Z.tgz", "./configure --enable-optimizations --with-lto", "make altinstall" ] return "\n".join(commands) if __name__ == "__main__": print(python_install()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值