Linux源码安装软件包时--prefix的配置建议
我们知道,使用源码安装软件包时通常会提供一个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的配置建议相关推荐
- Linux源码安装步骤
Linux上几乎所有的软件都经过了GPL授权,因此几乎所有的软件都会提供源码. 而一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上 ...
- linux怎么用源码安装mysql,Linux源码安装mysql步骤
创建文件夹: mkdir /usr/local/webserver 安装必要依赖包 yum -y install gcc gcc-c++ make ncurses-devel 安装cmake包: t ...
- Linux源码安装mysql 5.6.12(cmake编译)
转载链接:http://www.2cto.com/database/201307/229260.html Linux源码安装mysql 5.6.12(cmake编译) 1.安装make编译器(默认系统 ...
- Linux源码安装软件
Linux源码安装软件 源码安装:最原始最有效的安装方式 三部曲 (1)-./configure xxx 生成makefile文件,随后需要的安装信息都是从这一步中获取 (2)make 根据makef ...
- linux 源码安装 zip/unzip
linux 源码安装 zip/unzip 场景说明 Linux服务器,没有root权限 需要使用zip/unzip,但遗憾的是服务器没有安装 解决办法 自己用源码编译 步骤 下载zip/unzip的源 ...
- Linux源码安装Python3.7出现的各种坑
前言 自己在Linux安装过很多次Python,每次都会由于各种各样的原因出现很多问题,很无奈 安装流程 去这里先看看有哪些可用版本可用下载 下载 sudo wget http://www.pytho ...
- linux 源码安装mysql5.7_linux安装mysql5.7.27
一.卸载 mysql安装有三种方式,包括二进制包安装(Using Generic Binaries).RPM包安装.源码安装.一般是前两种比较多 二.安装 建议路径设置按照写的来 将下载的压缩包复制到 ...
- linux源码安装nginx
任务目标:源码安装nginx,作为web服务修改配置文件,让配置生效,验证配置 首先要去官网nginx.org下载一个tar包: tar xvf 解包 进入到解包出来的目录,对configure进行配 ...
- dr.com linux源码安装,Linux在不采用坑爹的Dr.com客户端下的连网方式(亲测可行 ,简单易行)...
笔者纠结学习Linux系统的过程中无网络的问题很久,编译大型软件需要相关的编译库软件包,软件包又存在复杂的依赖关系,所以,单单在Windows系统下把编译库软件包下载下来是相当繁琐的过程,还无法解决依 ...
最新文章
- 黑客常用SQL注入绕过技术总结!
- Arthas watch 命令使用指南
- Android之用PopupWindow实现弹出listview形式菜单
- 发布nuget包的正确姿势---cicd自动打包发布
- 放弃Venn-Upset-花瓣图,在线拥抱二分网络
- ebook_7种开放式eBook格式指南
- python源文件改写编写一个程序读取一个python源程序文件_学PYTHON第三节:编译和解释...
- centos7切换root为mysql_Linux(centos 7)系统下mysql8及以上版本修改root账户密码
- 智能录音笔完成全系列布局,科大讯飞还发了一款转写翻译智能耳机
- aliyun gradle 代理_gradle:现代高效的java构建工具
- 基于Python3-Pygame的坦克大战小游戏
- MRP里如何预测lead time :Approaches for the Prediction of Lead Times in an Engineer to Order Environment
- INA217构成的专业级微型话筒(麦克风)前置放大典型电路图
- 教你设置无线wifi无缝漫游,实现无线wifi自动切换联网
- 【Luogu】P7995 [USACO21DEC] Walking Home B
- dwg图纸的预览功能
- 如平静的水面,波澜不惊
- mysql远程访问的设置
- 支持向量机(SVM)的数学原理
- Mevoco 1.6 发布:支持在线克隆云主机的私有云
热门文章
- 用byte数组表示RGB颜色
- stock 工具收集
- 启动(程序还没执行生成dump文件的代码)就崩溃的处理流程
- 语音信号短时域分析之短时平均能量(四)
- 【手把手带你Godot游戏开发】FlappyBird:4.1无限地面之Godot青年(AnimationPlayer)版
- 一个能在vue3中运行的JSON编辑器,能展示JSON数据的高亮,打开时有默认数据
- 植物大战僵尸CE教程
- 注册 @live.com @msn.com邮箱
- 2022年5月编程语言排行看看学什么吃香?
- building workspace问题