RHEL7拥有三种安装方式,分别为rpm、yum和源代码安装,这三种安装模式各有特点,其中yum命令安装最为好用,可以不用担心包之间的依赖关系,rpm命令安装需要手动的解决包之间的依赖关系,而源码安装则需要运行相应的脚本进行安装,下面将介绍这三种安装方法
RPM是Red-Hat Package Manager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用,可以算是公认的行业标准了
> rpm -ivh package_name #安装
> rpm -e package_name #卸载
> rpm -qf #查询该文件属于哪个包
a:which ls
b:rpm -qf /usr/bin/ls
coreutils-8.22-23.el7.x86_64
> rpm -Uvh package_name #升级软件包
> rpm -qa package_name #查询软件包
rpm -qa | grep syslinux #查询含有syslinux的软件包
> rpm -qi obexd-0.19-2.el6.i686 #查询该包头信息
> rpm -ql obexd-0.19-2.el6.i686 #查询该包包含哪些文件
以下为使用rpm安装内核的示例:
在RHEL7.6的镜像的Packages当中有RHEL内核的rpm包,我们只需要把镜像文件挂载到文件夹下就可以了,具体方法请参照[RHEL7基础篇-2]当中的挂载步骤,我已经把镜象挂载到/mnt/rhel7.6下了,下面将会安装名为kernel-debug-3.10.0-957.el7.x86_64的内核,下面为安装步骤
> rpm -ivh /mnt/rhel7.6/Packages/kernel-debug-3.10.0-957.el7.x86_64.rpm
#把新安装的内核调为默认内核
> cat /boot/grub2/grub.cfg | grep menuentry
> grub2-set-default "Red Hat Enterprise Linux Server (3.10.0-957.el7.x86_64.debug) 7.6 (Maipo)"
#查看当前设置的默认启动内核版本
> grub2-editenv list
Yum全称为 Yellow dog Updater, Modified是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装
> yum list "*ackage_nam*" #模糊查询
> yum grouplist package_name #查询组套件
> yum -y install package_name #安装包
> yum -y groupinstall package_name #安装组套件
> yum -y remove package_name #卸载包
在使用yum前需要先建立yum库,下面为建库过程:
#后续必须为repo
> vim /etc/yum.repos.d/base.repo
####################
#baseurl值可以是:
#file:///mnt/iso #本地文件系统
#ftp://ip/rhel7.6/ #ftp
#http://ip或域名 #http
#示例-1
[base]
name=base-1
baseurl=file:///mnt/rhel7.6/
gpgcheck=0
#示例-2
[base]
name=base-2
baseurl=ftp://192.168.100.100/pub/rhel7.6/
gpgcheck=0
#示例-3
[base]
name=base-3
baseurl=http://vault.centos.org/7.6.1810/
gpgcheck=0
#建议使用示例-1
####################
#清空yum缓存并测试yum库
> yum clean all
> yum list
#服务器端与客户端可为同一个
#RHEL6/7直接将镜像内容挂载到共享目录下,即可!
> mkdir /mnt/rhel7.6
> mount /dev/sr0 /mnt/rhel7.6
以下为使用yum安装web组套件的示例:
#安装组套件或包时需要先查询yum库当中是否存在该组套件或包
> yum grouplist "*web*"
> yum -y groupinstall "Basic Web Server"
源代码安装通常为开发者把相关的程序代码压缩后发放出来,通常压缩包里面会包含安装手册与安装脚本,而源安装的最常用到的地方通常是最新的内核安装、一些没有收录进yum库当中的包和没有把代码打包成rpm包的程序等第三方软件所使用,例如ntfs-3g_ntfsprogs-2012.1.15这一个第三方软件,该软件并无收录入yum当中,也无打包成rpm,所以只能下载经过tar压缩过的源码包来进行源代码安装
#README文件为程序开发者的自述文件,绝对权威
#INSTALL文件为程序的安装手册,有一些程序没有
#例如linux的内核源码包,里面只有自述文件(README)、运维手册(MAINTAINERS)与一些版权相关的文件
> ./configure --prefix=/usr/local/ #检查与选择安装路径
> ./configure --help #脚本的帮助命令
> make #开始安装的初始话工作(编译程序)
> make install #开始安装
#下载ntfs-3g_ntfsprogs-2012.1.15,在文章末尾有提供下载
#解压压缩包,参数的选择主要看的是压缩包的压缩模式,这里使用的-p参数类似与强制解压缩的功能,也可以使用-z参数解压缩
> tar -pxvf ntfs-3g_ntfsprogs-2017.3.23AR.4.tgz
> cd ntfs-3g_ntfsprogs-2017.3.23AR.4
> ./configure --prefix=/usr/local/ntfs-3g
> make
> make install
#测试是否安装成功,ntf然后按tab键补齐,可以补齐则为安装成功
#安装完成后的一些后续工作,如man的支持
#再安装完成后去到安装目录下,如果目录下有share目录则说明该第三方应用支持man,无则不支持
> cd /usr/local/ntfs-3g/share
#在share目录下应该存在manX(X代表数字)的目录
#进入该文件夹然后把里面的文件全都拷到/usr/share/man/下对应的manX目录下
> cd ./man8
> cp * /usr/share/man/man8/
#测试是否成功
> man ntfs-3g
#解压内核压缩包
> tar -Jxvf linux-5.4.11.tar.xz -C /root
#准备文本配置文件.config
#/boot/config-3.10.0-957.el7.x86_64这个文件是在编译时定义内核的特性、功能的是否启用以及那些功能是一模块的形式安装还是直接安装到内核当中
#总的来说就是以该配置文件为模板,在此基础上来修改特性
#所以需要先把改模板拷贝到解压的/root/linux-5.4.11当中
> cp /boot/config-3.10.0-957.el7.x86_64 /root/linux-5.4.11/.config
#安装一些工具包/组
> yum list "*dev*"
> yum -y groupinstall "Development Tools"
> yum -y install ncurses-devel
#配置内核选项
> cd /root/linux-5.4.11
> make menuconfig
#在开始编译前要检查当前磁盘可用空间至少要有12G,不然会编译失败
#-j可限制同一时间的作业数,如make -j 8
> make
当初次编译时可能会出现某些包没有安装而导致的错误,只需要用yum来安装即可
#安装elfutils-libelf-devel.x86_64
> yum -y install elfutils-libelf-devel.x86_64
#安装完成后开始再次编译
> make
编译完成后文件的大小已经有足足12G了,所以磁盘可用空间一定要在12G以上
#进行模块化安装
> make modules_install
#在前面的编译当中编译出了bzImage
#接下来的安装将会把bzImage安装为/boot/vmlinuz-version-release
#以及生成initramfs-version-release.img文件
> make install
安装完成后,/boot/下会出现新内核的相关文件
修改新内核相关文件的DAC权限,以提高内核安全性
#修改新内核相关文件的DAC权限与原内核文件DAC权限相同
> ls -l /boot/
> chmod 0600 /boot/initramfs-5.4.11Kernel_For_Jove.img
> chmod 0600 /boot/System.map-5.4.11Kernel_For_Jove
> chmod +x /boot/vmlinuz-5.4.11Kernel_For_Jove
当安装生成完新内核的相关文件后,在/boot/grub2/grub.cfg当中,已经写入了新内核的相关配置
修改grub配置文件,使默认启动内核为新内核
#查看当前默认内核
> grub2-editenv list
#设置默认内核
> grub2-set-default "Red Hat Enterprise Linux Server (5.4.11Kernel_For_Jove) 7.6 (Maipo)"
#修改配置文件,并输出到/boot/grub2/grub.cfg当中
> grub2-mkconfig -o /boot/grub2/grub.cfg
#测试
> reboot
当使用过程中遇到了各种问题,需要卸载旧内核或者当前内核时,应该做以下操作:
相关文件下载链接:
https://pan.baidu.com/s/1Y9EnczHsDbWKl2tVeFUgEA