【摘抄整理】linux服务器上,源码编译、yum、rpm、二进制包安装及卸载
源码的编译安装及卸载
源代码包里面包括了程序原始的程序代码,需要在你的计算机上进行编译以后才可以产生可以运行程序,所以从源代码安装的时间会比较长。源代码包里的文件往往会含有种种源代码文件,头文件.h、c代码源文件.c、C++代码源文件.cc/.cpp等;源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
解压后,有src目录,如:redis
源码安装三部曲
1、生成makefile编译文件
预编译,主要用于检测系统基准环境库是否满足gcc环境,生成makefile文件。configure是个shell脚本,可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的符合GNU规范的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接,为下一步的编译做准备。可以通过在 configure 后加上参数来对安装进行控制,最常见的就是使用(–prefix=路径)来指定安装路径(而不是默认的/usr/local/)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 查看详细的说明帮助。
./configure 一般安装包下面都有一个configure文件,用来生成makefile编译文件
常用的参数:
--prefix 指定安装目录
--with-xx 指定依赖文件的目录
2、make编译
make命令也需要安装,会根据./configure产生makefile文件编译写好的c语言程序,产生可执行文件和各种库文件
编译,基于第一步生成的makefile进行代码编译。大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,可能是你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。可以使用错误代码(注意不仅仅是最后一行)在网上搜索相关解决方案。可能遇到的错误:make *** 没有指明目标并且找不到 makefile。问题很明了,没有Makefile,怎么办,原来是要先./configure 一下,再make。一般情况下,只需要直接用make即可,但是有时候,生成的Makefile文件中并没有指定C编译器或者C++编译器,那么就需要手动指定了,不然就有可能出现编译错误。
make CC=指定C语言编译器 make CXX=指定C++编译器
除了make命令,还有其他几个常用的预设命令:
- make all:产生我们设定的目标,即此范例中的可执行文件。只打make也可以,此时会开始编译原始码,然后连结,并且产生可执行文件。
- make clean:清除编译产生的可执行文件及目标文件(object file,*.o)。
- make distclean:除了清除可执行文件和目标文件外,把configure所产生的Makefile也清除掉。
- make install:将程序安装至系统中。如果原始码编译无误,且执行结果正确,便可以把程序安装至系统预设的可执行文件存放路径。
- make dist:将程序和相关的档案包装成一个压缩文件以供发布。
- make distcheck:和make dist类似,但是加入检查包装后的压缩文件是否正常。
3、make install
make install的作用是把编译好的文件(可执行文件和库文件)复制到指定的目录下,也就是第一步--prefix指定的目录,如果没有指定目录的话,还是在当前目录下
4. make clean
清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
卸载
不是每个源代码包都提供make uninstall的,这不是个通用方法。如果编译时设置了--prefix到一个单独的文件夹,就删除那个文件夹即可,但如果编译安装到了类似/usr这种地方,就没有特别简单的办法删除干净了。所以各个发行版提供了各种包管理,就是为了干这种事情的。
rpm安装及卸载
RPM就是二进制文件,可以直接运行的LINUX软件安装包
RPM是redhat系列发行版本所用的格式软件包。一般在RHEL、CentOS、SUSE、OracleLinux下都可以安装类似的RPM包。标准的安装方法是rpm -ivh。
rpm包的安装
1.安装一个包:rpm -ivh
2.升级一个包:rpm -Uvh
3.移走一个包:rpm -e
4.安装参数
--force 即使覆盖属于其它包的文件也强迫安装
--nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
5.查询一个包是否被安装:rpm -q < rpm package name>
6.得到被安装的包的信息:rpm -qi < rpm package name>
7.列出该包中有哪些文件:rpm -ql < rpm package name>
8.列出服务器上的一个文件属于哪一个RPM包:rpm -qf
9.可综合好几个参数一起用:rpm -qil < rpm package name>
10.列出所有被安装的rpm package:rpm -qa;查询某个包是否安装了:rpm -qa | grep httpd
11.列出一个未被安装进系统的RPM包文件中包含有哪些文件?rpm -qilp < rpm package name>
rpm包的卸载
rpm -qa | grep 包名,这个命令是为了把包名相关的包都列出来
rpm -e 文件名,这个命令就是你想卸载的软件,后面是包名称,最后的版本号是不用打的
yum安装及卸载
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。(自动判断rpm包的依赖,然后一次性把所有需要安装的N个rpm统一下载安装,其实原理和一个个的安装rpm没有什么本质区别)
常用的 Yum 命令
yum针对软件包操作常用命令: 1.使用YUM查找软件包 命令:yum search 2.列出所有可安装的软件包 命令:yum list yum list installed // 列出所有已安装的软件包 3.列出所有可更新的软件包 命令:yum list updates 4.列出所有已安装的软件包 命令:yum list installed 5.列出所有已安装但不在 Yum Repository 内的软件包 命令:yum list extras 6.列出所指定的软件包 命令:yum list 7.使用YUM获取软件包信息 命令:yum info 8.列出所有软件包的信息 命令:yum info 9.列出所有可更新的软件包信息 命令:yum info updates 10.列出所有已安装的软件包信息 命令:yum info installed 11.列出所有已安装但不在 Yum Repository 内的软件包信息 命令:yum info extras 12.列出软件包提供哪些文件 命令:yum provides
1、显示已经安装的软件包:yum list installed;查询某个包是否安装了:yum list installed | grep httpd,查询apache服务器httpd是否安装了
yum安装后,也可以用rpm查看
2、查找可以安装的软件包 (以 tomcat 为例):yum list tomcat
3、安装软件包 (以 tomcat 为例):yum install tomcat
4、卸载软件包 (以 tomcat 为例):yum remove tomcat,yum -y remove tomcat
5、列出软件包的依赖 (以 tomcat 为例):yum deplist tomcat
6、-y 自动应答yes,在安装软件的时候,会有中断,让用户选择是否要继续,我们可以用 -y 来应答所有的 yes , 比如我们安装 tomcat 的时候,用下面的命令,将安装任务一气呵成,不会中断。
yum -y install tomcat
7、info 显示软件包的描述信息和概要信息,以 tomcat 为例,yum info tomcat
8、升级软件包
升级所有的软件包,yum update
升级某一个软件包 ,以升级 tomcat 为例,yum update tomcat
检查可更新的程序,yum check-update
删除软件包:yum remove xxx
二进制包安装
二进制包里面包括了已经经过编译,可以马上运行的程序。你只需要下载和解包(安装)它们以后,就马上可以使用。二进制包里的文件一般会包含有可执行文件(与软件同名的往往是主执行文件),标志性特点是其所在路径含有名为bin的目录(解压后,有bin目录,如jmeter)
对比
包类型 | 包名举例 | 包名含义 | 安装方法 |
二进制包 | mysql-5.5.59-linux-glibc2.12-x86_64.tar.gz | 软件名<版本>-<OS><CPU架构>.tar.gz | 解压 |
源码包 | mysql-5.5.59.tar.gz | 软件名<版本>.tar.gz | 解压、./config、make、make install |
RPM包 | MySQL-server-5.5.59-1.el6.x86_64.rpm | 软件件名<版本><OS><CPU架构>.rpm | rpm或yum |
总结
rpm安装的,也可以通过yum查找到
yum安装的,也可以通过rpm查找到
参考:https://blog.csdn.net/tiao321/article/details/109492290
http://www.05bk.com/231.html
https://segmentfault.com/a/1190000011325357
__EOF__
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等
面试必备:项目实战(性能、自动化)、简历笔试,https://www.cnblogs.com/uncleyong/p/15777706.html
测试提升:从测试小白到高级测试修炼之路,https://www.cnblogs.com/uncleyong/p/10530261.html
欢迎分享:如果您觉得文章对您有帮助,欢迎转载、分享,也可以点击文章右下角【推荐】一下!