Linux 软件包管理

软件包管理

rpm管理

rpm -qa  查找已安装的软件包
rpm -qa | grep 查的东西    查找具体的包
rpm -qc firewalld      软件包在系统中创建的配置文件
rpm -qf /etc/passwd  系统中某一个文件是由那个软件包生成的
rpm -ql 软件包在系统中生成的所有文件
rpm -Uvh 更新软件包
rpm -e 卸载软件包
rpm -ivh 安装软件包
查找rpm包的网站:http://rpmfind.net/  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下载命令
#wget -O 指定存放路径
[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

yum 管理

清理yum缓存:
    # yum clean all
​
缓存软件包信息:    
    提高搜索/安装软件的速度
    # yum makecache
    
查询yum源信息:   
    # yum repolist     
​
更新:
    #yum update   所有软件包(已安装和未安装都更)
    #yum upgrade  只更新安装完的安装包
查看命令属于哪个软件
    # yum provides rz    
查看系统已经安装好的软件和没有安装的软件(源里存在即可查到):
    # yum list  
​
安装软件:
    # yum install 软件名称
    # yum install mysql mysql-server -y         #-y跳过确认提示直接安装
​
重装:
    # yum -y reinstall 软件名 (建立在已经有过)       
回滚:
    # yum history 查看历史操作
    # yum history undo ID
卸载软件:
    # 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 install:后面接需要安装的软件
    reinstall:后面接需要重新安装的软件
    update:后面接需要升级到的软件
    check-update:检查可用的升级包
    downgrade:后面接需要降级到的版本
    remove:卸载软件
    erase:功能同上,卸载和软件组相关的功能
yum makecache fast  快速生成自己的缓存
yum -y install epel-release   扩展源
vim /etc/yum.conf 安装完保存安装包
keepcache=0改为1

更换网络yum源--aliyun(加快下载速度,获取最新的软件信息)

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
如果没有wget命令的解决办法
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
或者
curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
或者
yum -y install wget
或者
rpm -ivh  https://rpmfind.net/linux/centos/7.9.2009/os/x86_64/Packages/wget-1.14-18.el7_6.1.x86_64.rpm
[root@linux-server ~]# cd /etc/yum.repos.d
[root@linux-server yum.repos.d]# mkdir back
[root@linux-server yum.repos.d]# mv *.repo back
[root@linux-server yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo  #下载aliyun的yum源
参数解释
curl -o  指定存放路径
或者
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源

1.通过镜像制作本地yum源

Linux 软件包管理_第1张图片

虚拟机上操作
1、mount /dev/cdrom /mnt
2、备份yum源
vim /etc/yum.repo/myyum.repo
[xa2304]
name=my.repo
baseurl=file:///mnt
gpgcheck=0
enabled=1
3、yum clean all
4、yum makecache
5、yum repolist


首先需要挂载镜像
[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源

1.将镜像挂载
    mount /dev/cdrom /mnt
2.配置Yum
    vim /etc/yum.repos.d/local.repo
    [my repo]
    name=my repo
    baseurl=file:///mnt
    enable=1
    gpgcheck=0
3.清理缓存
    yum chean all
4.建立缓存
    yum makecache 
5.yum repolist

2.局域网远程yum源制作(企业案例)----扩展作业
操作系统:centos7.9
​
资源: CentOS-7-x86_64-DVD-2009.iso镜像
实验服务器两台:
​
192.168.137.142  (作为vsftpd服务端)
​
192.168.137.141  (客户端)
 
首先测试两台主机可否ping通
 
在192.168.137.142上操作
[root@192 ~]# ping 192.168.137.141
[root@192 ~]# systemctl stop firewalld
[root@192 ~]# setenforce 0  #关闭selinux
​
在192.168.137.141上操作:
[root@linux-server ~]# ping 192.168.137.142
[root@linux-server ~]# systemctl stop firewalld
[root@linux-server ~]# setenforce 0
​
==========================================================
在192.168.137.142上操作---制作本地yum源,作为yum服务端
​
[root@192 ~]# yum install -y vsftpd
​
[root@192 ~]# systemctl start vsftpd
​
[root@192 ~]# mkdir /var/ftp/yum
​
[root@192 ~]# cd /var/ftp/
​
[root@192 ~]# cp /mnt/Packages/*  yum/          (拷贝一部分即可)
​
[root@192 ftp]# yum install -y createrepo
​
[root@192 ftp]# createrepo yum/
如果报错 找到报错的包 删除
​
===================================================================
yum客户端
在192.168.137.141上操作:
[root@linux-server ~]# cd /etc/yum.repos.d/
[root@linux-server yum.repos.d]# vim my.repo
[ftpYum]
name=centos
baseurl=ftp://192.168.137.142/yum
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
3.通过开启yum下载缓存功能制作本地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  #创建repo文件工具
[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.配置文件关键字错误
3.检查yum源是否存在
4.baseurl路径是否正确
5.镜像大小是否正确
6.当有Yum进程存在的时,无法同时再打开一个Yum进程
4.克隆yum源
1. 安装工具
    yum -y install yum-utils(reposync)
2. yum repolist
3.安装nginx
    yum -y install nginx && rm -rf /usr/share/nginx/html/*
4.克隆yum源
    cd /usr/share/nginx/html/
     reposync -r base -r epel -r extras -r updates
5.制作yum仓库
    cd /usr/share/nginx/html/
    createrepo base
    createrepo epel
    createrepo extras
    createrepo updates

在公司内网中,可能无法连接外部网络,这时需要我们将外部yum源中的包克隆到本地

# 在yum源服务器上
[root@linux-server ~]# curl -o /etc/yum.repos.d/myrepo.repo https://download.beyourself.org.cn/repo/centos7-repo && echo -e "10.36.172.9 package.qf.com package2.qf.com" >> /etc/hosts
[root@linux-server ~]# yum install -y yum-utils epel-release
[root@linux-server ~]# yum install -y nginx
[root@linux-server ~]# cd /usr/share/nginx/html
[root@linux-server ~]# rm -rf *
[root@linux-server ~]# reposync -r base -r epel -r extras -r updates 同步一部分
[root@linux-server ~]# createrepo base/
[root@linux-server ~]# createrepo epel/
[root@linux-server ~]# createrepo extras/
[root@linux-server ~]# createrepo updates/
[root@linux-server ~]# vim /etc/nginx/nginx.conf +43
location / {
    root /usr/share/nginx/html;
    autoindex on;
}
[root@linux-server ~]# systemctl restart nginx
​
# 在客户端
[root@linux-client ~]# vim /etc/yum.repos.d/myrepo.repo
[http-base-yum]
name=http-yum
baseurl=http://192.168.137.142/base
enabled=1
gpgcheck=0

源码包管理

一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上运行。
源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。
源码安装的优点,编译安装过程,可以设定参数按照需求增加功能,进行安装,并且可以指定安装的版本,可以指定安装路径,灵活性比较大。

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

mysql: MySQL

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

你可能感兴趣的:(linux,运维,服务器)