linux系统管理之软件管理(连载)

tech2026-04-12  1

软件管理

导语:

安装软件 rpm yum 源码安装 查看软件:安装目录,配置文件,软件版本 ... 卸载软件

一、rpm介绍

rpm软件包名称: 软件名称 版本号(主版本、次版本、修订号) 操作系统 -----90%的规律 #有依赖关系,不能自动解决依赖关系。 举例:openssh-6.6.1p1-31.el7.x86_64.rpm 数字前面的是名称 数字是版本号:第一位主版本号,第二位次版本号,带横杠的是修订号, el几---操作系统的版本。 noarch : 32位64位都支持 x86_64 : 64位 i4-686的包 :32位 ====== ​ #用rpm安装需要考虑如下信息: 1.需要考虑系统的版本需要与rpm对应 2.系统的架构:如32位还是64位 3.需要考虑依赖关系

rpm安装

#rpm -ivh 软件包名称 -i install -U upgrade 升级 ​ 查找rpm包的网站:http://pkgs.org 1.通过rpm安装 可以先下载下来 [root@linux-server ~]# wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm #wget下载命令 [root@linux-server ~]# rpm -ivh ntfs-3g-2017.3.23-11.el7.x86_64.rpm #本地安装rpm包 ​ 2.直接通过连接安装rpm包 [root@linux-server ~]# rpm -ivh http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm ​ 案例安装zabbix源 [root@linux-server ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm [root@linux-server ~]# yum install zabbix-server zabbix-agent #安装软件

各种查询

==查询 (从本地的rpm数据库) -q query -l list -f file [root@linux-server ~]# rpm -qa | grep http # 查找软件是否安装 [root@linux-server ~]# rpm -ql httpd #查询http安装的文件 [root@linux-server ~]# rpm -qf /usr/share/httpd/noindex #查询该文件属于哪个包 [root@linux-server ~]# rpm -qf /etc/passwd #查询某一个文件是哪个软件产生的:只能查询已经安装好的软件

卸载

#rpm -e 软件名称 -e erase [root@linux-server ~]# rpm -e httpd [root@linux-server ~]# rpm -e httpd --nodeps #!不检测依赖关系 直接卸载 --nodeps 在卸载的时候用(卸载的时候不检查依赖关系) rpm工具管理软件包总结: 1. 很难解决包依赖关系 2. 如果某个文件没有,很难知道它由哪个rpm包提供

二 yum方式管理

#可以自动解决rpm软件依赖关系,虽然是通过yum安装的但是最后执行的还是rpm,也就是说没有rpm命令yum也就不能用了。 分类:本地yum和远程yum 本地yum: file:// 远程yum: http:// ftp://

yum操作

安装好环境之后我们有centos自带的官方yum源,我们也可以自行更换或者制作自己的yum源 清理yum缓存: # yum clean all ​ 缓存软件包信息: 提高搜索/安装软件的速度 # yum makecache 查询yum源信息: # yum repolist 查找软件: # yum search mysql 此命令会搜索到系统已经安装和yum源里没有安装的软件信息,可以用他简单测试yum是否好用 ​ 查看软件依赖性关系: # yum deplist httpd ​ 查看命令属于哪个软件 # yum provides rz ​ 查看系统已经安装好的软件和没有安装的软件(源里存在即可查到): # yum list ​ 安装软件: # yum install 软件名称 # yum install mysql mysql-server -y //-y跳过确认提示直接安装 ​ 重装: # yum -y reinstall 软件名 卸载软件: # yum erase mysql-server # yum remove mysql-server # yum -y remove mysql-server [root@linux-server ~]# yum -y remove `rpm -qa | grep httpd` #yum卸载rpm查找出来所有与httpd相关的软件包全部卸载掉

更换网络yum源--aliyun

[root@linux-server ~]# cd /etc/yum.repo.d [root@linux-server yum.repos.d]# mkdir back [root@linux-server yum.repos.d]# mv *.repo back [root@linux-server yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载aliyun的yum源 或者 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 安装扩展源--epel.repo [root@linux-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@linux-server ~]# cd /etc/yum.repos.d/ [root@linux-server yum.repos.d]# ls CentOS-Base.repo epel.repo

本地yum源:

首先需要挂载镜像 [root@linux-server ~]# mkdir /mnt/centos7u4 将本地镜像上传到虚拟机中 [root@linux-server ~]# mv /usr/local/home/dir10/CentOS-7-x86_64-DVD-1708.iso /root/ [root@linux-server ~]# mount CentOS-7-x86_64-DVD-1708.iso /mnt/centos7u4/ [root@linux-server ~]# rm -rf /etc/yum.repos.d/* [root@linux-server ~]# cd /etc/yum.repos.d/ #yum源配置文件存放目录 [root@linux-server yum.repos.d]# vim CentOS.Base.repo #在编写yum配置文件是必须是.repo [centos7u4] #yum源区别名称,用来区分其他的yum源 name=centos7u4 #yum源描述 yum源名字 baseurl=file:///mnt/centos7u4 #指定本地yum源的路径 enabled=1 #是否使用此yum源(1为打开,0为关闭) gpgcheck=0 #检查软件

制作自己的yum源

制作自己的yum源: 打开Yum缓存功能:安装完软件之后,软件不会被删除(默认安装完之后,不会保留安装包) # vim /etc/yum.conf 修改下面参数的值为1,软件会被保存到cachedir指定的目录下 keepcache=1 [root@linux-server ~]# yum install -y httpd wget [root@linux-server ~]# cd /var/cache/yum/x86_64/7/base/packages/ #yum缓存仓库 [root@linux-server packages]# ls httpd-2.4.6-90.el7.centos.x86_64.rpm wget-1.14-18.el7_6.1.x86_64.rpm httpd-tools-2.4.6-90.el7.centos.x86_64.rpm ​ 自己制作yum源 [root@linux-server ~]# mkdir /myyum (把rpm安装包放到此目录里面) 把想用yum安装的软件包拷贝到目录下 [root@linux-server ~]# cp /var/cache/yum/x86_64/7/base/packages/* /myyum/ [root@linux-server ~]# yum install -y createrepo [root@linux-server ~]# createrepo /myyum //此目录就可以作为yum源了。 [root@linux-server ~]# vim /etc/yum.repos.d/myyum.repo [myyum] name=myyum baseurl=file:///myyum enabled=1 gpgcheck=0 [root@linux-server ~]# yum repolist yum排错: 1.yum配置文件必须以.repo结尾 2.yum.conf里面8,9行的值设置成0 3.配置文件关键字错误 4.检查yum源是否存在 5.baseurl路径是否正确 6.镜像大小是否正确 7.当有Yum进程存在的时,无法同时再打开一个Yum进程

三 源码包管理

获得源码包途径 官方网站,可以获得最新的软件包

mysql: http://www.mysql.com/

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz

Nginx: www.nginx.org

安装源码包 准备工作(去Nginx官网下载Nginx软件的源码包) 1.编译环境如编译器gcc、make yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel #编译环境的准备 ​ gcc是编译工具,编译单个文件 make工具可以看成是一个智能的批处理工具,通过调用makefile文件中用户指定的命令来进行编译和链接的。(将这种高级语言写的代码编译成二进制语言) pcre支持正则表达式 zlib-devel,有些应用依赖于这个库才能正常运行,因此需要安装zlib-devel openssl-devel 这个就是包含了头文件,头文件参考,某些库文件等跟开发相关的东西。 ​ 2. 准备软件 nginx-1.16.0.tar.gz 3. 部署安装Nginx软件服务 nginx模块介绍: --enable -so 支持动态模块 --enable -modules=all 全部支持动态模块 --enable -ssl 支持https [root@linux-server ~]# wget http://nginx.org/download/nginx-1.16.1.tar.gz [root@linux-server ~]# tar xzf nginx-1.16.1.tar.gz [root@linux-server nginx-1.16.1]# ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-pcre [root@linux-server nginx-1.16.1]# make #编译文件 [root@linux-server nginx-1.16.1]# make install #安装文件 [root@linux-server ~]# useradd www #创建nginx用户 [root@linux-server ~]# /usr/local/nginx/sbin/nginx #启动nginx [root@linux-server ~]# systemctl stop firewalld #关闭防火墙

访问

详解源码安装三步曲 # ./configure #相对路径执行安装 ​ a. 指定安装路径,例如 --prefix=/usr/local/nginx ​ b. 启用或禁用某项功能, 例如 --enable-ssl, --disable-filter --with-http_ssl_module ​ c. 和其它软件关联,例如--with-pcre ​ d. 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求 最终生成:Makefile ​ #make //按Makefile文件编译,产生可执行的文件。但是这个文件在当前目录中 ​ #make install //按Makefile定义的文件路径安装,将产生的可执行文件,安装到合适的位置,相当于拷贝

四 源码安装错误(企业案例):

错误1: ./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=<path> option. ​ 解决方案: # yum -y install zlib-devel 错误2: ./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=<path> option. ​ 解决方案: # yum -y install openssl-devel 错误3: checking for C compiler ... not found ./configure: error: C compiler cc is not found ​ 解决方案: # yum -y install gcc gcc-c++ make 错误4: ./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=<path> option. ​ 解决方案: # yum -y install pcre-devel

五、局域网yum源制作(企业案例)

操作系统:centos7.4 ​ 资源: CentOS-7-x86_64-DVD-1708.iso镜像 实验服务器两台: ​ 192.168.246.170 (作为vsftpd服务端) ​ 192.168.246.169 (客户端) 首先测试两台主机可否ping通 在192.168.246.170上操作 [root@192 ~]# ping 192.168.246.169 PING 192.168.246.169 (192.168.246.169) 56(84) bytes of data. 64 bytes from 192.168.246.169: icmp_seq=1 ttl=64 time=0.644 ms [root@192 ~]# systemctl stop firewalld [root@192 ~]# setenforce 0 #关闭selinux ​ 在192.168.246.169上操作: [root@linux-server ~]# ping 192.168.246.170 PING 192.168.246.170 (192.168.246.170) 56(84) bytes of data. 64 bytes from 192.168.246.170: icmp_seq=1 ttl=64 time=0.374 ms [root@linux-server ~]# systemctl stop firewalld [root@linux-server ~]# setenforce 0 ​ ========================================================== 在192.168.246.170上操作 ​ 将CentOS-7-x86_64-DVD-1708.iso 上传到/opt目录下 ​ [root@192 ~]# mkdir /opt/yum-iso #创建挂载点 ​ [root@192 ~]# mount /opt/CentOS-7-x86_64-DVD-1708.iso /opt/yum-iso/ ​ [root@192 ~]# yum install -y vsftpd ​ [root@192 ~]# systemctl start vsftpd ​ [root@192 ~]# cp -r /opt/yum-iso/* /var/ftp/pub/ ​ [root@192 ~]# cd /var/ftp/ ​ [root@192 ftp]# yum install -y createrepo ​ [root@192 ftp]# createrepo pub/ ​ [root@192 ftp]# cd /etc/yum.repos.d/ [root@192 yum.repos.d]# vim myyum.repo [ftpYum] name=ftpYum baseurl=file:///opt/yum-iso enabled=1 gpgcheck=0 [root@192 yum.repos.d]# yum clean all [root@192 yum.repos.d]# yum makecache [root@192 yum.repos.d]# yum repolist =================================================================== ​ 在192.168.246.169上操作: [root@linux-server ~]# cd /etc/yum.repos.d/ [root@linux-server yum.repos.d]# vim my.repo [ftpYum] name=centos baseurl=ftp://192.168.246.170/pub enabled=1 gpgcheck=0 [root@linux-server yum.repos.d]# yum clean all [root@linux-server yum.repos.d]# yum makecache [root@linux-server yum.repos.d]# yum repolist
最新回复(0)