linux 软件管理


目录

  • rpm
  • yum
  • yum私有仓库
  • yum升级内核
  • 编译

centos7挂载光盘,查看光盘自带的rpm包

yum install -y autofs
systemctl enable --now autofs
cd /misc/cd/Packages/

rpm常用参数

安装

rpm -ivh zip-3.0-11.el7.x86_64.rpm

卸载

rpm -e
rpm -e --nodeps # 忽略依赖卸载

 查看指定程序安装后生成的所有文件

rpm -ql rsync

 查看软件包信息

rpm -qi rsync

 查看一个文件来自哪个软件包

rpm -qf /usr/lib/systemd/system/rsyncd.service

查看软件的配置文件

rpm -qc rsync

查看软件的文档

rpm -qd rsync

yum的工作模式

yum是基于c/s模式进行工作的,yum的服务端会创建yum repository,在仓库中存储了rpm包和与这些rpm包相关的元数据(放在repodata目录下),当yum客户端使用yum安装工具时,

会自动下载yum服务端上的元数据,从元数据中查询是否存在相关的rpm包和依赖关系,如果有。就会从远程仓库中找到相关rpm包下载安装

yum客户端配置文件

/etc/yum.conf                 # 所有仓库公共配置项
/etc/yum.repos.d/*.repo       # 单独的yum仓库配置文件

yum仓库配置文件

[epel]                                                   # 仓库id
name=Extra Packages for Enterprise Linux 7 - $basearch   # 仓库描述
baseurl=http://mirrors.aliyun.com/epel/7/$basearch       # 仓库路径,和repodata同一目录,支持file本地路径,http,https,ftp
failovermethod=priority enabled=1 gpgcheck=0 # 开启校验 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7

yum配置中的一些变量

$releasever: 当前OS的发行版的主版本号,如:876
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量

yum常用命令

yum repolist   # 查看所有源

查看程序包

yum list  # 查看所有程序包
yum list mariadb-server  # 查看某个程序包

查看文件在哪个包中

yum provides

查看程序包信息

yum info mariadb-server

卸载

yum remove

创建yum私有仓库

创建局域网内基于Base的yum源

yum -y install httpd
systemctl enable --now httpd
mkdir /var/www/html/centos/7
mount /dev/sr0 /mnt/                # 挂载完整的系统盘,将系统盘中的安装包复制到仓库服务器
cp -a /mnt/* /var/www/html/centos/7

 yum客户端配置

[base]
name=oct base
baseurl=http://10.0.0.106/centos/7/
gpgcheck=0

 从阿里云下载epel源,制作局域网的epel源

# 先配置后本机的epel源,然后将阿里源上的epel和元数据下载到本机,之后在yum客户端添加对应yum
yum install -y yum-utils.noarch
reposync --repoid=epel --download-metadata -p /var/www/html/

升级内核 

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm   # 生成elrepo源

 修改 elrepo.repo,将里边的kernel源启用

[elrepo-kernel]
name=ELRepo.org Community Enterprise Linux Kernel Repository - el7
baseurl=http://elrepo.org/linux/kernel/el7/$basearch/
        http://mirrors.coreix.net/elrepo/kernel/el7/$basearch/
        http://mirror.rackspace.com/elrepo/kernel/el7/$basearch/
        http://linux-mirrors.fnal.gov/linux/elrepo/kernel/el7/$basearch/
mirrorlist=http://mirrors.elrepo.org/mirrors-elrepo-kernel.el7
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-elrepo.org
protect=0

查看相关内核包

yum list *kernel*

 安装稳定版

yum install -y kernel-lt.x86_64

 安装之后重启,在开机界面可以选择使用内核

编译安装

  • ./configure 通过脚本选项传递参数,生成Makefile文件,如果源码包有makefile文件则不用./confgure
  • make 根据Makefile文件,检测依赖的环境,构建应用程序
  • make install 复制文件到相应路径

系统最小化安装之后建议安装的软件包

yum install -y gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages

 编译安装tree

[root@Centos7 /]# wget http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz
[root@Centos7 /]# tar zxvf tree-1.7.0.tgz -C /usr/local/src/
[root@Centos7 /]# cd /usr/local/src/tree-1.7.0/
# 源码包里没有./configure脚本。直接修改Makefile
[root@Centos7 tree-1.7.0]# make -j 4 # 多核编译
[root@Centos7 tree-1.7.0]# make install