Linux基础学习之Day9-使用YUM管理RPM包

Linux基础学习之从入门到精通Day9

YUM

使用YUM管理RPM包

自动解决包的依赖关系

==查看可用仓库

[root@~]# yum clean all //清空缓存及其它文件
[root@ ~]# yum makecache //重建缓存
[root@ ~]# yum repolist //查询可用的仓库

==安装

#yum -y install httpd vsftpd *vnc
#yum -y reinstall httpd
#yum -y update httpd
#yum -y install php
#yum -y update
#yum -y install /root/OpenIPMI-2.0.19-11.el7.x86_64.rpm //从本地安装
#yum -y install https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm //URL
#yum groupinfo mariadb
#yum -y groupinstall mariadb
#yum -y remove httpd
#yum -y groupremove mariadb

==查询(从本地 rpm数据库 和 yum源 中查询)

#yum list httpd
#yum list vnc
#yum list |grep vnc
#yum list installed
#yum info httpd
#yum group list
#yum grouplist
#yum groupinfo mariadb

==卸载

[root@tianyun ~]# yum -y remove mysql-server
[root@tianyun ~]# yum -y groupremove mysql-server

==history

#yum history
#yum history info 4
#yum history undo 4

扩展查询:
例1: 从包名和包描述中查找带有关键字chinese的包

#yum list |grep chinese //只关注软件包的名
#yum list |grep piny
#yum search chinese //关注软件包的名 或 描述
cjkuni-ukai-fonts.noarch : Chinese Unicode TrueType font in Kai face
cjkuni-uming-fonts.noarch : Chinese Unicode TrueType font in Ming face
#yum search “http server”
#yum search “web server”

例2:查找/etc/vsftpd/vsftpd.conf属由哪个包提供?

[root@server0 ~]# yum provides /etc/vsftpd/vsftpd.conf
Loaded plugins: langpacks
vsftpd-3.0.2-9.el7.x86_64 : Very Secure Ftp Daemon
Repo : classroom_content_rhel7.0_x86_64_dvd_
Matched from:
Filename : /etc/vsftpd/vsftpd.conf
[root@server0 ~]# yum -y install vsftpd-3.0.2-9.el7.x86_64

例3:查找vsftpd.conf属由哪个包提供?

[root@~]# yum provides *vsftpd/vsftpd.conf
[root@server0 ~]# yum provides */vsftpd.conf
[root@server0 ~]# yum provides /vsftpd.

例4:查找命令vim属由哪个包提供?

[root@server0 ~]# vim
bash: vim: command not found…
[root@server0 ~]#
[root@server0 ~]# yum provides vim
Loaded plugins: langpacks
XXXXXXXX.el7.x86_64 : A program for plotting mathematical expressions and data

使用自建源

  1. 提供基础软件包Base [光盘]
  2. 提供update软件包
  3. 提供其它软件包如nginx, zabbix, docker, hadoop, openstack
配置防火墙

[root@yum-server ~]# firewall-cmd --permanent --add-service=ftp
[root@yum-server ~]# firewall-cmd --reload

关闭SELinux

[root@yum-server ~]# setenforce 0
[root@yum-server ~]# vim /etc/sysconfig/selinux
SELINUX=disabled

FTP

[root@yum-server ~]# yum -y install vsftpd
[root@yum-server ~]# systemctl start vsftpd
[root@yum-server ~]# systemctl enable vsftpd

实现目标1:提供基础软件Base
挂载centos镜像

[root@yum-server ~]# mkdir /var/ftp/{centos6u8,centos7u3}
[root@yum-server ~]# mount /home/centos7u3.iso /var/ftp/centos7u3
[root@yum-server ~]# echo “mount /home/centos7u3.iso /var/ftp/centos7u3” >> /etc/rc.d/rc.local
[root@yum-server ~]# chmod +x /etc/rc.d/rc.local

Yum client测试

[root@yum-client ~]# rm -rf /etc/yum.repos.d/CentOS-Base.repo
[root@yum-client ~]# vi /etc/yum.repos.d/centos7u3.repo //添加Yum源
[centos7u3]
name=centos7u3
baseurl=ftp://192.168.122.202/centos7u3
gpgcheck=0
enabled=1

[root@yum-client ~]# yum makecache
[root@yum-client ~]# yum repolist
[root@yum-client ~]# yum -y install wget lftp bash-com* vim-enhanced

实现目标2: 提供update
启动yum缓存

[root@yum-server ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/ b a s e a r c h / basearch/ basearch/releasever
keepcache=1
[root@yum-server ~]# yum clean all
[root@yum-server ~]# yum -y update

[root@yum-server ~]# mkdir /var/ftp/update
[root@yum-server ~]# find /var/cache/yum/x86_64/7/ -iname “*.rpm” -exec cp -rf {} /var/ftp/update ;

[root@yum-server ~]# yum -y install createrepo
[root@yum-server ~]# createrepo /var/ftp/update

Yum client测试

[root@yum-client ~]# rm -rf /etc/yum.repos.d/CentOS-Base.repo
[root@yum-client ~]# vi /etc/yum.repos.d/update.repo
[update]
name=centos update
baseurl=ftp://192.168.122.202/update
gpgcheck=0
enabled=1

[root@yum-client ~]# yum repolist
Loaded plugins: fastestmirror
repo id repo name status
update centos update 75
repolist: 75

[root@yum-client ~]# yum -y update

实现目标3: 提供其它软件包如nginx, zabbix --downloadonly
1. 配置nginx及zabbix源

[root@yum-server ~]# vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

2. downloadonly

[root@yum-server ~]# yum clean all
[root@yum-server ~]# yum install nginx --downloadonly
[root@yum-server ~]# mkdir /var/ftp/{nginx,zabbix}
[root@yum-server ~]# find /var/cache/yum/x86_64/7/ -iname “*.rpm” -exec cp -rf {} /var/ftp/nginx

3. 创建reopdata:

[root@yum-server ~]# createrepo /var/ftp/nginx //如果加入新软件包,重新创建

Yum client测试

[root@yum-client ~]# vi /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx
baseurl=ftp://192.168.122.202/nginx
gpgcheck=0
enabled=1

[root@yum-client ~]# yum repolist
repo id repo name status
nginx nginx 1
update centos update 75

[root@yum-client ~]# yum -y install nginx

本地源:例如使用安装光盘

  1. 挂载安装光盘(临时):
    [root@tianyun ~]# mount /dev/cdrom /media

    [root@tianyun ~]# mount -o loop centos7u3.iso /media

  2. 添加yum源
    [root@tianyun ~]# vim /etc/yum.repos.d/centos7u3.repo
    [centos7u3]
    name=centos7u3
    baseurl=file:///media
    gpgcheck=0
    enabled=1

使用RPM工具管理RPM包

==安装

rpm -ivh local_path
rpm -ivh url_path
[root@~]# rpm -ivh ntfs-3g-2017.3.23-1.el7.x86_64.rpm 套件名
[root@~]# rpm -Uvh ntfs-3g-2017.3.23-1.el7.x86_64.rpm 套件名
[root@~]# rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/n/ntfs-3g-devel-2017.3.23-1.el7.x86_64.rpm
额外选项:
–nosignature //不检验软件包的签名
–force //强制安装软件包 yum reinstall
–nodeps //忽略依赖关系

软件卸载

#rpm -e 软件名称
-e erase

–force 在安装的时候用(强软件卸载
#rpm -e 软件名称
-e erase制覆盖安装)
–nodeps 在卸载的时候用(卸载的时候不检查依赖关系)

RPM包安装信息存储到本地RPM数据库中。。。

==查询

(从本地的rpm数据库)
[root@tianyun ~]# rpm -q ntfs-3g //查询指定包是否安装
[root@tianyun ~]# rpm -qa |grep ntfs
[root@tianyun ~]# rpm -ql ntfs-3g //查询ntfs-3g安装的文件
[root@tianyun ~]# rpm -qf /usr/bin/ntfs-3g //查询该文件属于哪个rpm包
[root@tianyun ~]# rpm -qi ntfs-3g //查询包的information
[root@tianyun ~]# rpm -qc ntfs-3g //查询某个包安装的配置文件
[root@tianyun ~]# rpm -qd vsftpd //查安装的帮助文档

==卸载

[root@tianyun ~]# rpm -e ntfs-3g
[root@tianyun ~]# rpm -e ntfs-3g --nodeps !!!不检测依赖关系 直接卸载

源码包管理

1. 获得源码包途径

官方网站,可以获得最新的软件包
Apache: www.apache.org
Nginx: www.nginx.org
Tengine: tengine.taobao.org

2. 安装源码包

准备工作

  1. 编译环境如编译器gcc、make
  2. 准备软件 tengine-2.2.0.tar.gz

部署Tengine

pcre: 支持正则表达式,地址重写rewrite
#yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel

Tengine: --enable -so 支持动态模块
–enable -modules=all 全部支持动态模块
–enable -ssl 支持https 安全链接
#useradd www
#tar xvf tengine-2.2.0.tar.gz
#cd tengine-2.2.0
#./configure \

–user=www
–group=www
–prefix=/usr/local/nginx
–with-http_stub_status_module
–with-http_sub_module
–with-http_ssl_module
–with-pcre
#make
#make install
#/usr/local/nginx/sbin/nginx //启动nginx服务器
#systemctl stop firewalld

3. 详解源码安装三步曲

#./configure
a. 指定安装路径,例如 --prefix=/usr/local/nginx
b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module
c. 和其它软件关联,例如–with-pcre
d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求
最终生成:Makefile

源码安装错误:

error1:
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib= option.
解决方案:
#yum -y install zlib-devel

error2:
./configure: error: SSL modules require the OpenSSL library.
You can either do not enable the modules, or install the OpenSSL library
into the system, or build the OpenSSL library statically from the source
with nginx by using --with-openssl= option.
解决方案:
#yum -y install openssl-devel

error3:
checking for C compiler … not found
./configure: error: C compiler cc is not found
解决方案:
#yum -y install gcc gcc-c++ make

error4:
./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre= option.
解决方案:
#yum -y install pcre-devel

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值