Linux源码安装软件
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到包解 ...
随机推荐
- EJB到底是什么?
EJB到底是什么? 1. 我们不禁要问,什么是"服务集群"?什么是"企业级开发"? 既然说了EJB 是为了"服务集群"和"企业 ...
- eclipse安装插件配置Android开发环境
安卓版本与sdk的对应 转载自: https://blog.csdn.net/cx776474961/article/details/79501740 最近学习Android开发,电脑已有开发we ...
- ubuntu18.04中python虚拟环境的安装
一:下载虚拟环境安装包 sudo apt install virtualenv sudo apt install virtualenvwrapper pwd 查看当前目录 ls -all 查看是否有 ...
- MVC _Ajax的使用【七】
一.本篇主要写的是在MVC项目中一种ajax的使用方法 1. 首先在控制器中创建两个方法,showCreate()和AddUserInfo() using System; using System. ...
- C++类的大小计算
转自http://www.tuicool.com/articles/uiUJry 一个空的class在内存中多少字节?如果加入一个成员函数后是多大?这个成员函数存储在内存中什么部分? 一个Class对 ...
- LeetCode--019--删除链表的倒数第N个节点(java)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点. 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 ...
- Python的日期函数datetime使用
前记:Python的时间模块,time,datetime功能很丰富,要多源码学习一下,常用的strftime()和strptime()等等要灵活使用 import datetime now_time ...
- net基础运算符
1.Convert类型转换 总结: 类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换. 但是,如果两个类型的变量不兼容,比如string与int或者string 与doub ...
- 『Python CoolBook』C扩展库_其五_C语言层面Python库之间调用API
点击进入项目 一.C层面模块添加API 我们仍然操作如下结构体, #include <math.h> typedef struct Point { double x,y; } Point; ...
- DFS 之 全排列
题目描述输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字. 我们可以模拟出n个盒子和n张卡片,我们需要将n张卡片分别放到n个盒子里,且每个盒子只能放1张卡 ...