Linux环境下 源码编译安装软件
==== 1. 下载,步骤略
==== 2. 验证,部分官方下载同时提供签名,MD5,sha1,sha256等校验信息。
$ gpg --verify gnupg-2.2.14.tar.bz2.sig gnupg-2.2.14.tar.bz2
$ md5sum archlinux-2019.03.01-x86_64.iso
8164667750c46cf297720b21145e1e27 archlinux-2019.03.01-x86_64.iso
$ sha1sum archlinux-2019.03.01-x86_64.iso
e32acb5a7b7cfb2bdba10697cce48ab69e13c186 archlinux-2019.03.01-x86_64.iso
查看得出的校验码是否与官方提供的信息一致。
$ md5sum -c twrp-3.1.1-1-libra.img.md5
twrp-3.1.1-1-libra.img: OK
$ sha256sum -c twrp-3.1.1-1-libra.img.sha256
twrp-3.1.1-1-libra.img: OK
直接使用官网提供校验文件验证。
==== 3. 查看 自述文件 README,安装说明 INSTALL 等文件信息。官网上有无特别安装要求等。
==== 4. 解包 tar,释放出源代码文件
$ tar zxvf xxx.tar.gz xxx.tgz //gzip压缩的tarball
$ tar jxvf xxx.tar.bz2 //bzip2压缩的tarball文件
==== 5. 配置 ./configure 针对当前系统、软件环境,配置好安装参数,生成Makefile
执行“./configure --help” 可以查看帮助
--prefix=软件安装目录 (若不指定任何配置选项,将采用默认值)
$ ./configure --prefix=/usr/local/xxx or///opt/XXX...
==== 6. 编译 make 将源代码文件变为二进制的可执行程序
$ make
==== 7. 编译检测
$ make check
==== 8. 安装 make install 将编译好的程序文件复制到系统中
$ sudo make install
==== 9. 清理 make clean 用来清除编译连接过程中的一些临时文件
$ make clean
==== 10. 清理 make uninstall 用来卸载相关应用程序,
$ make uninstall
若无异常,按上述步骤安装即可。若遇到问题可继续往下看。
===============================
补充说明:
a. 安装环境可能需要手动安装gcc,make等软件包,按照Linux支持的安装命令安装即可。或者yum -y groupinstall "Development Tools" 自动安装基本开发工具。
b. $ ./configure --prefix=/指定路径:这里可以手动指定安装路径,或者使用配置文件默认的路径
大部分典型的 Linux 发行版的文件系统层次结构都遵从 文件系统层次化标准(FHS)
新软件默认安装在系统的 /usr/local 目录中。
这是依据 FHS 中 “/usr/local 层级是为系统管理员本地安装软件时使用的,它在系统软件更新覆盖时是安全的。
/usr/local 层级以某种方式复制了根目录,你可以
在 /usr/local/bin 这里找到可执行程序,
在 /usr/local/lib 中找到库,
在 /usr/local/share 中找到架构无关的文件,等等。
使用 /usr/local 树作为你定制安装的软件位置的唯一问题是,你的软件的文件将在这里混杂在一起。
尤其是你安装了多个软件之后,将很难去准确地跟踪 /usr/local/bin 和 /usr/local/lib 中的哪个文件到底属于哪个软件。
它虽然不会导致系统的问题。毕竟,/usr/bin 也是一样混乱的。但是,有一天你想去卸载一个手工安装的软件时它会将成为一个问题。
要解决这个问题,我通常喜欢安装定制的软件到 /opt 子目录下。再次引用 FHS:“/opt 是为安装附加的应用程序软件包而保留的。
因此,我们将在 /opt 下创建一个子目录用于安装。并且,如果有一天我想去卸载它,我只是很简单地去删除那个目录:
https://linux.cn/article-9172-1.html
http://www.pathname.com/fhs/
c. 注意查看作者提供的README, INSTALL等文件
比如gunpg软件的 README 提供的安装步骤。
As with all packages, you just have to do
./configure
make
make check
make install
......
You may run
gpgconf --list-dirs
to view the default directories used by GnuPG.
提供了查看默认安装路径的方法。
比如gunpg软件的 INSTALL 提供的安装步骤。
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
......
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
有安装步骤及安装路径的描述等
==========
原文:https://blog.csdn.net/liupeifeng3514/article/details/79054510
./configure:
解压完成就正式开始安装了(补充一点,开始configure之前,如有必要,请使用patch工具为源码打上相应的补丁),
首先跳转到源码的解压目录,众所周知,开始configure前还是应该仔细阅读源码目录下的README或者INSTALL文件,好多安装中的注意事项在这里都有所罗列,
configure实际上是一个脚本文件,在当前目录中键入”./configure”,shell就会运行当前目录下的configure脚本,
有一点必须说明,在整个configure过程,其实编译尚未进行,configure仅仅是做编译相关的准备工作,它主要对您当前的工作平台做一些依赖性检查,
比如编译器是否安装,连接器是否存在,如果在检测的过程没有任何错误,你很幸运,configure脚本会在当前目录下生成下一步编译链接所要用到的另一个文件Makefile,
当然configure支持及其丰富的命令行参数,可以键入”./configre –help”获取具体的信息。
总的来说,此文件有两个功能:1、让用户选定编译特性;2、检查编译环境。configure执行后将生成MakeFile文件。
make
如果configure过程正确完成,那么在源码目录,会生成相应的Makefile文件,Makefile文件简单来说包括的是一组文件依赖关系以及编译链接的相关步骤,
事实上真正的编译链接工作也不是make所做的,make只是一个通用的工具,一般情况下,make会根据Makefile中的规则调用合适的编译器编译所有与当前软件相依赖的源码,
生成所有相关的目标文件,最后再使用链接器生成最终的可执行程序。
3、配置过程
3.1 修改PATH环境变量,以能够识别此程序的二进制文件路径
修改/etc/profile文件,在文件中添加:
export PATH=$PATH:/path/to/somewhere #记得是可执行文件所在的目录,路径中不要包含可执行文件。
然后执行 :
source /etc/profile #是我们的修改生效
3.2 增加系统搜索库文件的路径
默认情况下,系统搜索库文件的路径/lib, /usr/lib; 要增添额外搜寻路径(注意:有的程序不提供库文件,那就不需要此设置了)
在/etc/ld.so.conf.d/中创建以.conf为后缀名的文件,而后把要增添的路径直接写至此文件中;然后执行如下命令使其生效:
ldconfig
3.3 增加系统搜索头文件的路径
如果程序提供了库文件,也会相应的提供头文件,一般在安装目录的include目录下,系统默认扫描头文件的路径是:/usr/include。
我们可以在/usr/include下用链接连接到我们安装程序的头文件。
ln -s /usr/local/nginx/include /usr/include/yourname
==================
http://www.jinbuguo.com/linux/understand_package_install.html
深入理解软件包的配置、编译与安装
......
================
==== 20190320 安装 Gnupg
fedora 29 xfac 下源码安装 gnupg 数字签名软件
按上述步骤执行到 ./configure 就报错。
内容非常多,命令行下还都一种颜色,没有粗体等,看不到重点,中间有无数个Yes, 无数个No.
其实主要看最下面几行即可,是首要解决的问题,按照提示解决后再试。
libassuan-2.5.3.tar.bz2
libgcrypt-1.8.4.tar.bz2
libgpg-error-1.36.tar.bz2
libksba-1.3.5.tar.bz2
npth-1.6.tar.bz2
提示信息就有直达网址,分别下载解压缩,配置,编译,安装这几个包即可。
另外,后续的 编译 make 及安装命令,同样会显示一大堆的信息,不过是彩色的,关键信息,
比如OK,成功完成的标志信息会使用 醒目的 加粗绿色 表示。
不知道如何能让 configure 的执行也能提供彩色提示。
Linux源码安装软件的更多相关文章
-
linux源码安装软件的一般方法
rhel系统貌似安装不了xmgrace,配置的时候居然说要那个M*tif库.百度了一下,需要openmotif库,然后用root账户想要用yum安装一下这个库,搞了好久没搞懂.后面搞明白了,原因竟是因 ...
-
linux 源码安装软件原理
make 与 configure 在使用类似 gcc 的编译器来进行编译的过程并不简单,因为一套软件并不会仅有一支程序,而是有一堆程序码文件.所以除了每个主程序与副程序均需要写上一笔编译过程的命令外, ...
-
Linux源码安装JDK1.8
Linux源码安装Java 1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.oracle.com/technetwork/java/javase/ ...
-
mysql-5.5 for linux源码安装
mysql-5.5 for linux源码安装 1.使用Yum安装依赖软件包 # yum install -y gcc gcc-c++ gcc-g77 autoconf automake bison ...
-
linux下源码安装软件
在linux下的很多软件都是通过源码包方式发布的,这样做对于最终用户而言,虽然相对于二进制软件包,配置和编译起来繁琐点,但是它的可移植性却好得多,针对不同的体系结构,软件开发者往往仅需发布同一份源码包 ...
-
linux源码安装mysql,shell编程学习,ubuntu
一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...
-
salt源码安装软件和yum安装软件
上面简单列出了源码安装的sls文件书写思路. 涉及到一些固定的思路:如, 1,拷贝 解压安装时候需要依赖tar.gz存在 如果已安装则无需再次安装. 2,启动脚本 加入chk时候需要文件存在,如果已添 ...
-
Linux 源码安装 FFmpeg
加班次数频繁,已经快一年没有写博了.由于此次在项目中使用到了 FFmpeg 来处理音视频,顾记录下在 Linux 系统中源码安装 FFmpeg 以便不时之需. 1. 安装 yasm yasm 是一个汇 ...
-
linux源码安装的步骤
源码安装的过程中多多少少会遇到问题,在此仅简述一下安装的步骤,具体安装的过程中遇到的问题,具体解决. 安装步骤: 1.获取源码 name.gz 2.解包 tar -xvf name.gz (cd到包解 ...
随机推荐
-
jquery 替换文本内容
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
-
如何用css3实现一个图片的抖动或者弹跳
<li onmouseout="this.className='off'"><a href=""><img src=". ...
-
mahout算法源码分析之Collaborative Filtering with ALS-WR (四)评价和推荐
Mahout版本:0.7,hadoop版本:1.0.4,jdk:1.7.0_25 64bit. 首先来总结一下 mahout算法源码分析之Collaborative Filtering with AL ...
-
Jquery autocomplete 插件使用
轻松实现类似百度输入框联想功能: autocomplete 是一个很厉害的插件,该插件基于jquery,在jquery官网能下载到最新版本. 首先,jQuery UI 是基于 jQuery 的,所以, ...
-
strcat函数的坑点
我们先看下面这样一段代码: #include <iostream> #include <stdlib.h> using namespace std; int main() { ...
-
WinForm 布局,容器、打印和对话框控件
今天,我主要学习了容器控件.打印控件.对话框控件. 在正式进行今天的内容之前,首先补充了布局的两个属性:Anchor:锁定位置,Dock:填充位置,一般与容器控件配合使用. 之后,我学习了第一部分内容 ...
-
Zabbix 3.0 从入门到精通(zabbix使用详解)
第1章 zabbix监控 1.1 为什么要监控 在需要的时刻,提前提醒我们服务器出问题了 当出问题之后,可以找到问题的根源 网站/服务器 的可用性 1.1.1 网站可用性 在软件系统的高可靠性(也 ...
-
kubernetes系列05—kubectl应用快速入门
本文收录在容器技术学习系列文章总目录 1.使用kubectl 1.1 介绍 kubectl用于运行Kubernetes集群命令的管理工具. 1.2 语法 kubectl [command] [TYPE ...
-
Centos上传下载命令
[root@localhost ~]# rz -bash: rz: command not found //安装下载上传插件 [root@localhost ~]# yum -y install lr ...
-
react &; vue 项目创建的方式
创建reactApp的几种方式: create-react-app filename 适用于npm6及以下. npm init react-app filename 适用于npm6以上. npx c ...