遇一山,过一山,处处有风景;只要勇敢向前,一路尽是繁花盛开。 | (点击查看→)【测试干货】python/java自动化、持续集成、性能、测开、简历、笔试面试等

【摘抄整理】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

 

 

 

 

 
参考:
 
posted @ 2019-04-27 16:42  全栈测试笔记  阅读(1085)  评论(0编辑  收藏  举报
浏览器标题切换
浏览器标题切换end