一.软件包安装
分类
源码包
二进制包(RPM包,系统默认包)
源码包
优点
1.开源

可以自由选择所需的功能
    软件是编译安装,适合自己系统,更加稳定,效率更高
    卸载方便

缺点

安装过程步骤较多,容易出错
    编译时间较长,安装比二进制安装要长
    3.编译安装,报错,新手难以解决

二进制包
优点

包管理系统简单,只用几个命令就可以实现安装、升级、查询和卸载
    安装速度比源码包快多了
    缺点
    经过编译,不再可以看到源代码
    功能选择不如源码包灵活
    依赖性

二. RPM包管理
简介
1、RPM包的来源:所有RPM包都在系统光盘的Packages目录中
2、RPM包命名规则:软件包名-软件版本-软件发布的次数-适合的Linux平台-适合的硬件平台-包扩展名
3、RPM包依赖性:
a、树形依赖:a->b->c 解决方法:从后往前安装
b、环形依赖:a->b->c->a 解决方法:放在一条命令中安装即可
c、模块依赖:库文件依赖,库也叫模块,就是linux当中的函数,它有一个典型的特征,就是以【.so.数字】结尾,它依赖的其实是一个文件,而不是软件包。该文件藏身在某一个软件包当中。我们只要将该文件所在的软件包安装上,该文件也就安装了。解决方法:登录www.rpmfind.net网站,输入库文件名称查询到对应的rpm包,然后安装即可。
4、yum在线安装:可以方便的解决依赖文件,一条命令就可以帮用户从网上(本地也可以)找到安装包进行安装。
注:RedHat的yum是收费服务,而CentOS的yum是免费服务

安装
1、包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
2、RPM安装
rpm -ivh 包全名
选项:
-i(install)安装
-V(verbose)显示详细信息
-h(hash)显示进度
--nodeps不检测依赖性

升级
rpm -Uvh 包全名
参数选项:-U(upgrade) 升级

卸载
rpm -e 包名
选项:-e(erase) 卸载
--nodeps 不检查依赖

三、RPM包查询
查询方式:
1、 rpm -q 包名 查询包是否安装; rpm -qa 查询所有安装的rpm包。rpm -qa grep httpd
2、 rpm -qi 包名 查询包详细信息。 -i : 查询软件信息; -p :查询未安装包信息。rpm -qip xxxx
3、 rpm -ql 包名 查询包中文件安装位置。 -l:列表; -p:查询未安装包信息。rpm -ql httpd
4、 rpm -qf 系统文件名 查询系统文件属于哪个RPM包。 (必须为系统包 不能是自己新建的) rpm -qf xxx
5、 rpm -qR 查询依赖性。 -R:查询依赖性; -p:查询未安装包信息。

四、RPM包校验
rpm -V(大写V) 已安装的包名
V(verify):校验指定RPM包中的文件;
!!该命令执行之后,如果没有任何回馈信息,则表示该文件一切正常!!

验证内容中的8个信息得具体内容如下:
①S:文件大小是否改变;
②M:文件的类型或文件的权限(rwx)是否被改变;
③5:文件MD5校验和是否改变(可以看成文件内容是否改变)
④D:设备的主从代码是否改变;
⑤L:文件路径是否改变;
⑥U:文件的属主(所有者)是否改变;
⑦G:文件的属组是否改变;
⑧T:文件的修改时间是否改变;
文件类型:
①c:配置文件(config file)
②d:普通文档(documentation)
③g:“鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包 包含;
④L:授权文件(license file)
⑤r:描述文件(read me)
RPM包中文件提取:
rpm2cpio 包全名 cpio -idv .文件绝对路径
--> 前面的【.】代表当前路径,不能省略。【文件绝对路径】和包里文件的绝对路径对应,也就是告诉了cpio要去包里提取哪个文件。
注:cpio只知道提取文件,并不知道要从什么地方提取文件,因此我们通常要使用【】管道符或【<】输入重定向告诉cpio我们应该从什么设备去取出文件。
①-rpm2cpip //将rpm包转换为cpio格式的命令;
②-cpip //是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件;

使用输入重定向的cpio命令格式:
cpio 选项 < [文件设备]
①-i:copy-in模式,还原;
②-d:还原时自动新建目录;
③-v:显示还原过程;

五、YUM在线安装
YUM源文件
1、yum的优点:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。(rpm缺点:安装过程中,rpm包依赖性太强)
2、redhat的yum在线安装需要付费,centOS不需要。
3、在【/etc/yum.repos.d/】目录中,默认有4个yum源文件,其中【CentOS-Base.repo】是基本yum源文件,如果我们能上网,那它是默认生效的,而其他的都是默认不生效的。
4、配置介绍
[base]:名字可以随便起。
name:名字也是随便起。
mirrorlist和baseurl一个是主站点,一个是辅助站点,这两个有一个就行。可以找一个163或清华大学的yum源更换。
enabled:默认最后一个容器不生效,其他容器都生效。
gpgcheck:一般都要开启,开启后安装时会验证rpm包是否是官方的,以保证系统安全。
gpgkey:默认系统安装后,在目录【/etc/pki/rpm-gpg】下都会存在数字证书。注:前面的【file://】表示文件协议,后面的【/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6】是数字证书的位置。

光盘搭建YUM源
有三个步骤:
1、挂载光盘;
2、使网络yum源【CentOS-Base.repo】失效;
3、使光盘yum源【CentOS-Media.repo】生效,需要编辑【CentOS-Media.repo】文件,修改【baseurl】和【enabled】两项内容,操作如下:
[root@CentOS6 yum.repos.d]# vi CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom/   -->将baseurl设置为实际光盘挂载地址(另外两个要注释掉,否则会因为找不到光盘而报错。【#】注释时,必须写在行开头)
file:///media/cdrom/
file:///media/cdrecorder/

gpgcheck=1
enabled=1  -->将enabled设置为1,使这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
编辑后保存退出即可。
注:可以使用【yum list】命令列出当前yum源中的所有rpm包:即更新数据库
[root@CentOS6 yum.repos.d]# yum list
......省略部分内容......
Available Packages
389-ds-base.i686 1.2.11.15-29.el6 c6-media
389-ds-base-devel.i686 1.2.11.15-29.el6 c6-media
389-ds-base-libs.i686 1.2.11.15-29.el6 c6-media
......省略部分内容......
可以从后面的【c6-media】看出这是光盘yum源,因为这是光盘yum源文件【CentOS-Media.repo】中定义的名字。

YUM命令
1、常用yum命令:
查询:
①yum list:查询目前使用的yum源中所有可用软件包列表;
②yum search 关键字:搜索服务器上所有和关键字相关的包;
安装:
①yum -y install 包名
⑴-install:安装;
⑵-y:自动回答yes;
②例如:yum -y install httpd
升级:
①yum -y update 包名
⑴-update:升级;
⑵-y:自动回答yes;
卸载:
②yum -y remove 包名
⑴-remove:卸载;
⑵-y:自动回答yes;
!!!服务器使用最小化安装,用什么软件安装什么,尽量不要卸载!!!

yum软件组管理命令
    yum grouplist:列出所有可用的软件列表;
    yum groupinstall 软件组名:安装指定软件组,组名可以由grouplist查询出来;
    yum gourpremove 软件组名:卸载指定软件组;
    ①LANG=en_US:切换至英文;(临时生效)①
    ②LANG=zh_CN.utf8:切换至中文;(临时生效)②

六、源码包管理
源码包和RPM包区别
安装后区别:安装位置不同
RPM包安装在默认位置:

源码包安装在指定位置中,一般是/usr/local/软件名/

安装位置不同带来的影响
1、源码包是不能使用【service】命令来启动服务,因为源码包的安装位置由用户指定,放在哪并不统一。而rpm包安装后,通常都是放在【/etc/rc.d/init.d】目录中的,而【service】命令执行时,会自动搜索该目录,所以rpm包安装的服务可以使用【service】命令。
1).rpm包安装位置不用指定,源码包安装位置必须指定。源码包没有卸载命令。卸载时直接删除文件夹即可。源码包默认启动方法/usr/local/apache2/bin/apachetl start
2).rpm包启动方式两种 service XXXX start(red hat 系列专属) 或 /etc/rc.d/init.d/xxx start

安装过程
1.源码包保存位置:/usr/local/src/
2.软件安装位置:/usr/local/
3.如何确定安装过程报错:
安装过程停止;
并出现:error、warning或no的提示;

下载源码包解压缩下载的源码包进入解压缩目录;
    ./configure:软件配置与检查
    定义需要的功能选项; ./configure --prefix=PREFIX
    检测系统环境是否符合安装要求;
    .把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑;
    make:编译
    如果报错,可执行“make clean” :清除编译缓存文件;
    make install:编译安装

源码包的卸载无需卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件;

linux下软件安装知识整理的更多相关文章

  1. Linux下软件安装方法即路径设置

    Linux下软件安装方法即路径设置 http://www.cnblogs.com/edward259/archive/2010/07/02/1770066.html

  2. linux下软件安装的几种方式

    linux下软件安装的几种方式(主要有源码安装, rpm安装, yum安装). 一:源码安装 几乎所有的开源软件都支持在Linux下运行,而这些软件一般都以源码形式发放,只需要Linux安装了gcc. ...

  3. Linux入门基础教程之Linux下软件安装

    Linux入门基础教程之Linux下软件安装 一.在线安装: sudo apt-get install 即可安装 如果在安装完后无法用Tab键补全命令,可以执行: source ~/.zshrc AP ...

  4. Linux 下软件安装

    Linux 下软件安装 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二进制软件包安装 从源代码编译安装 这几种安装方式各有优劣,而 ...

  5. 2019-9-16:渗透测试,基础学习,Linux下软件安装,环境搭建,笔记

    Centos linux下软件安装yum 通过分析rpm包头数据后,自动解决依赖关系,直接云端下载软件,根据不同版本系统获取不同软件信息,按顺序下载rpm包,安装软件yum search 软件名:搜索 ...

  6. 【转】Linux下软件安装的几种方式

    转自Linux下软件安装的几种方式 Linux 系统的/usr目录 Linux 软件安装到哪里合适,目录详解 Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统 ...

  7. linux下软件安装的方法

    linux下软件的安装与卸载   第一章   linux下安装软件,如何知道软件安装位置 注:一般的软件的默认安装目录在 jdk-1_6_0_14-linux-i586-rpm.bin    ←修改为 ...

  8. linux下软件安装与卸载

    linux上软件二进制安装主要分为:rpm手动安装和yum在线安装(其所安装的都为rpm二进制包). 关于rpm手动安装,学习后面内容前需分清如下内容: 包全名 : 操作的包是没有安装的软件包时,使用 ...

  9. (大数据工程师学习路径)第一步 Linux 基础入门----Linux 下软件安装

    介绍 介绍 Ubuntu 下软件安装的几种方式,及 apt,dpkg 工具的使用. 一.Linux 上的软件安装 通常 Linux 上的软件安装主要有三种方式: 在线安装 从磁盘安装deb软件包 从二 ...

随机推荐

  1. Go Example--缓存通道

    package main import "fmt" func main() { //缓存通道 msg := make(chan string,2) msg <- " ...

  2. 【BZOJ4300】 绝世好题

    傻逼题都不能一眼看出思路…… 原题: 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len). n<=100000,ai&l ...

  3. APACHE如何里一个站点绑定多个域名?用ServerAlias servername

    APACHE2如何里一个站点绑定多个域名?用ServerAlias以前很笨,要使多个域名指向同一站点总是这样写: <VirtualHost *:80>ServerAdmin i@kuigg ...

  4. C语言打印100到200之间的素数

    用C语言打印素数,我们首先要了素数的相关定义:只有1和它本身两个因数的自然数,也就是说除了1和它本身外,不能被其他自然数整除的数就称为素数. 例如:101只能被1 和101 整除:103只能被1 和1 ...

  5. Javascript 中 的 for ... in 和 for ... of 差别

    Javascript 中 的 for ... in 和 for ... of 差别 for ... in 是历史问题,在循环数据时会可以出现奇怪的问题,比如把数据的属性循环出来. for ... of ...

  6. [转]Serializable接口与Externalizable接口区别

    被Serializable接口声明的类的对象的内容都将被序列化,如果现在用户希望自己指定序列化的内容,则可以让一个类实现Externalizable接口,此接口定义如下: public interfa ...

  7. ElasticSearch(三)不仅仅是查询

    二次评分 查询出来结果后,进行二次评分: 但是其实每个文档查询出来的结果是两次查询的分数之和,这个其实并不是很能讲的清楚: 多匹配控制 多匹配是指multi-match,控制则是指一下的几种控制方式: ...

  8. DevExpress GridView 那些事儿

    1:去除 GridView 头上的 "Drag a column header here to group by that column" -->  点击 Run Desig ...

  9. LOJ 2585 「APIO2018」新家 ——线段树分治+二分答案

    题目:https://loj.ac/problem/2585 算答案的时候要二分! 这样的话,就是对于询问位置 x ,二分出一个最小的 mid 使得 [ x-mid , x+mid ] 里包含所有种类 ...

  10. ASP.NET AJAX入门系列(7):使用客户端脚本对UpdateProgress编程

    在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager, ...