我们知道,使用源码安装软件包时通常会提供一个config或configure脚本对安装进行一些必要的配置,其中最为常见的是–prefix选项,它用于指定软件安装的父级目录,也就是将软件安装在哪个文件夹下面。通常这个选项要么设置/usr/local,要么设为/usr/local/<package-name>,那两种配置有什么利弊呢?我们以openssl的安装为例,讨论一下于–prefix是使用/usr/local好还是/usr/local/openssl好。

使用--prefix=/usr/local的好处是像软件包自身的bin,lib,include,share等文件夹下的文件会自动安装到/usr/local下对应的文件夹中,与使用yum安装的方式较为类似,从文件的安放位置上看更加像是“软件包分散融入到了Linux的约定位置”,由于这些约定位置在OS层面上做了一些配置,安装后可以省掉一些额外配置。例如:

  • 由于/usr/local/bin已经加入到PATH中,所以软件包安装后一般是可以直接在终端调用相关命令,不必再单独配置PATH

  • 由于/usr/local/share/doc是man查找使用文档的位置,所以软件包安装后可以正常使用man查询命令使用方法

而相应不好的地方在于:由于文件安装位置分散,如果安装失败想卸载重装的话就比较麻烦了。如果需要卸载可以使用sudo make uninstall,但并不是所有的软件包都支持uninstall操作。

综合来看,对于那些比较知名和成熟的软件包,还是建议使用--prefix=/usr/local,这种安装方式更规范也会有带来很多便利,即使安装中遇到错误想要回滚也有sudo make uninstall帮助清理分散的安装文件。

如果不确定软件包的安装行为,可以先使用--prefix=/usr/local/your-package进行一下预安装,观察安装完毕后的文件夹结构,主要看一下是否有bin,lib,include,share等文件夹,再决定是否卸载并使用--prefix=/usr/local重装。

Linux源码安装软件包时--prefix的配置建议相关推荐

  1. Linux源码安装步骤

    Linux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码.  而一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上 ...

  2. linux怎么用源码安装mysql,Linux源码安装mysql步骤

    创建文件夹: mkdir  /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel 安装cmake包: t ...

  3. Linux源码安装mysql 5.6.12(cmake编译)

    转载链接:http://www.2cto.com/database/201307/229260.html Linux源码安装mysql 5.6.12(cmake编译) 1.安装make编译器(默认系统 ...

  4. Linux源码安装软件

    Linux源码安装软件 源码安装:最原始最有效的安装方式 三部曲 (1)-./configure xxx 生成makefile文件,随后需要的安装信息都是从这一步中获取 (2)make 根据makef ...

  5. linux 源码安装 zip/unzip

    linux 源码安装 zip/unzip 场景说明 Linux服务器,没有root权限 需要使用zip/unzip,但遗憾的是服务器没有安装 解决办法 自己用源码编译 步骤 下载zip/unzip的源 ...

  6. Linux源码安装Python3.7出现的各种坑

    前言 自己在Linux安装过很多次Python,每次都会由于各种各样的原因出现很多问题,很无奈 安装流程 去这里先看看有哪些可用版本可用下载 下载 sudo wget http://www.pytho ...

  7. linux 源码安装mysql5.7_linux安装mysql5.7.27

    一.卸载 mysql安装有三种方式,包括二进制包安装(Using Generic Binaries).RPM包安装.源码安装.一般是前两种比较多 二.安装 建议路径设置按照写的来 将下载的压缩包复制到 ...

  8. linux源码安装nginx

    任务目标:源码安装nginx,作为web服务修改配置文件,让配置生效,验证配置 首先要去官网nginx.org下载一个tar包: tar xvf 解包 进入到解包出来的目录,对configure进行配 ...

  9. dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...

    笔者纠结学习Linux系统的过程中无网络的问题很久,编译大型软件需要相关的编译库软件包,软件包又存在复杂的依赖关系,所以,单单在Windows系统下把编译库软件包下载下来是相当繁琐的过程,还无法解决依 ...

最新文章

  1. 黑客常用SQL注入绕过技术总结!
  2. Arthas watch 命令使用指南
  3. Android之用PopupWindow实现弹出listview形式菜单
  4. 发布nuget包的正确姿势---cicd自动打包发布
  5. 放弃Venn-Upset-花瓣图,在线拥抱二分网络
  6. ebook_7种开放式eBook格式指南
  7. python源文件改写编写一个程序读取一个python源程序文件_学PYTHON第三节:编译和解释...
  8. centos7切换root为mysql_Linux(centos 7)系统下mysql8及以上版本修改root账户密码
  9. 智能录音笔完成全系列布局,科大讯飞还发了一款转写翻译智能耳机
  10. aliyun gradle 代理_gradle:现代高效的java构建工具
  11. 基于Python3-Pygame的坦克大战小游戏
  12. MRP里如何预测lead time :Approaches for the Prediction of Lead Times in an Engineer to Order Environment
  13. INA217构成的专业级微型话筒(麦克风)前置放大典型电路图
  14. 教你设置无线wifi无缝漫游,实现无线wifi自动切换联网
  15. 【Luogu】P7995 [USACO21DEC] Walking Home B
  16. dwg图纸的预览功能
  17. 如平静的水面,波澜不惊
  18. mysql远程访问的设置
  19. 支持向量机(SVM)的数学原理
  20. Mevoco 1.6 发布:支持在线克隆云主机的私有云

热门文章

  1. 用byte数组表示RGB颜色
  2. stock 工具收集
  3. 启动(程序还没执行生成dump文件的代码)就崩溃的处理流程
  4. 语音信号短时域分析之短时平均能量(四)
  5. 【手把手带你Godot游戏开发】FlappyBird:4.1无限地面之Godot青年(AnimationPlayer)版
  6. 一个能在vue3中运行的JSON编辑器,能展示JSON数据的高亮,打开时有默认数据
  7. 植物大战僵尸CE教程
  8. 注册 @live.com @msn.com邮箱
  9. 2022年5月编程语言排行看看学什么吃香?
  10. building workspace问题