linux中软件包相关知识及安装、卸载、查询命令

一、linux包相关知识

1、包的分类

linux包从大的方面可以分为二进制包和源码包

1.1、二进制包

  二进制包是编译后的可执行文件,看不到源码,后缀是.rpm。一般由厂商提供,如数据库、QQ等。

1.2、源码包

  C语言写的源码,没有编译。需要手动编译后才能安装。

2、包的命名

举例:httpd-2.2.15-15.el6.centos.1.i686.rpm,命名规则说明如下:

【httpd:软件包名】

【2.2.15: 软件版本】

【15:软件发布的次数】

【el6.centos:适合的linux平台】

【i686:适合的硬件平台】

【rpm:rpm包扩展名】

3、包的依赖性

树形依赖:a->b->c a依赖b b依赖c 安装时先安装c再安装b再安装a,卸载时顺序相反

环形依赖:a->b->c->a 这种用一条命令安装abc

模块依赖:依赖的不是一个包,而是库依赖包,必须安装别的包,才能安装所需的库依赖包

       网上查询该库依赖包需要安装哪个包 www.rpmfind.net,库依赖包命名如 so.2

二、linux包安装、卸载、查询命令

1、二进制包

二进制包默认的是rpm包(以.rpm作为后缀的二进制文件),rpm包有两种安装方式(yum也是安装的rpm包),如下:

1.1、rpm命令手动安装(升级、卸载、查询)

  【安装命令:rpm -ivh 包全名】

  【升级命令:rpm -Uvh 包全名】

  【卸载命令:rpm -e 包名】

  选项说明:

  --nodeps:不检测依赖性(安装、卸载时可以加,一般不用)

  -i:安装
  -v:显示详细信息
  -h:显示进入

  安装说明:安装、升级时使用包全名,卸载时使用包名

  【rpm包查询命令】

    rpm -q 包名:            查询某个包

    rpm -qa:             查询所有已安装的rpm包

    rpm -qa | grep httpd:         查询是否已安装httpd包

    rpm -qi mysql-community-server:  查询已安装包的信息(-i)后面跟包名

    rpm -qip zip-3.0-1-el6.i686.rpm:    查询未安装的包的信息(-p)后面跟包全名

    rpm -ql 包名:             查询包中文件安装位置文件安装位置是固定的(默认的)

    rpm -qlp zip-3.0-1-el6.i686.rpm:       查询该包打算安在哪里,未安装的跟包全名

    rpm -qf 文件名:            查询文件属于哪个包

    rpm -qR 包名:           查询已安装的包的依赖性

    rpm -qRp 包全名:           查询未安装的包的依赖性

    rpm -V 包名:             rpm包校验:
    举例:
         [root@localhost tmp]# rpm -V mysql-community-server
    S.5....T. c /etc/my.cnf
    表明/etc/my.cnf这个文件已做了修改,S:文件大小改变, 5:md5改变 ,T:修改时间改变
         如果没有信息输出说明没有修改

1.2、yum命令在线安装(升级、卸载、查询)

  yum源位置:/etc/yum.repos.d/CentOS-Base.repo

  yum list:        查询所有可用软件包列表

  yum search 包名:    查询与包名相关的包

  yum -y install 包名:    安装

  yum -y update 包名:     升级

  yum -y update:        假如不加包名,默认所有软件包,包括内核都升级,会出大问题。注意避免

   yum -y remove 包名:   卸载

【光盘yum源搭建】 

  如果该版本是两张光盘,要安装的包不在第一张里就在第二张里,都试一下

  设备状态选择已连接

  挂载命令:mount /dev/sr0 /mnt/cdrom

  linux所有的yum源在以下目录:

  /etc/yum.repos.d

  CentOS-Base.repo

  CentOS-CR.repo

  CentOS-Debuginfo.repo

  CentOS-fasttrack.repo

  CentOS-Media.repo

  CentOS-Sources.repo

  CentOS-Vault.repo

  mysql-community.repo

  mysql-community-source.repo

  nginx.repo

  光盘搭建使用CentOS-Media.repo,其它的改名,改为xxx.repo.bak 使所有的网络yum源失效

  修改光盘yum源文件

  源文件内容:
  [c7-media]
  name=CentOS-$releasever - Media
  baseurl=file:///media/CentOS/
  file:///media/cdrom/
  file:///media/cdrecorder/
  gpgcheck=1
  enabled=0
  gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

  说明:c7-media:容器名称,叫什么都可以
  name:名称,叫什么都可以
  baseurl:光盘挂载地址,不用的注释掉,现在应该只有baseurl=file:///mnt/cdrom
  enabled=0:改为enabled=1,使该yum源生效

2、源码包

源码包安装:安装指定位置:一般 /usr/local/软件名/

所有rpm包都可以这样执行:/etc/rc.d/init.d/服务 start
所有rpm包的启动文件都放在/etc/rc.d/init.d目录下(绝对路径)

简单启动方式: service 服务名 start

service命令 不能用于源码包安装的
源码包的启动用决定路径启动
例如/usr/local/apache2/bin/apachectl start

安装源码包
1、安装C语言编译器 gcc
2、下载源码包:http://mirror.bit.edu.cn/apache/httpd/

已经安装了rpm包的httpd 还可以安装源码包的 因为安装位置不同

源码包的保存位置 /usr/local/src/
安装软件位置:/usr/local/

确定安装过程报错:安装过程停止并出现error、warning、no的提示

解压:tar -zxvf httpd-2.4.38.tar.gz
查看目录大小:du -sh httpd-2.4.38
进入解压缩目录
linux中任务源码包都有类似文件:
INSTALL:安装说明
README:使用说明
碰到陌生的源码 先查看安装说明,使用说明

./configure 软件配置与检查(编译前准备)
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

定义安装路径 ./configure --prefix=/usr/local/apache2
编译 make
make clear(出错了清除临时文件)
编译安装 make install
完成
怎样启动? 看INSTALL中 start,绝对路径启动

卸载:不会产生任何垃圾文件
rm -rf /usr/local/apache2/

posted @   雷雨客  阅读(365)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示