RHEL安装指南

RHEL的全称为Red Hat Enterprise Linux,面向商业市场,红帽公司对每个版本提供10年的技术支持,大约三年才发布一个新版本。相比于其它Linux发行版,RHEL是收费才能使用的。 RHEL有三个发行版本, Client面向娱乐办公,Workstation面向开发程序,Server面向服务器。不论是哪个版本,在安装的时候都可以选择GUI软件包装上图形界面。

安装过程中需要破解和更新,相关脚本通过如下命令获取:

git clone https://gitcafe.com/clone/rhtools.git

需要说明的是脚本中使用的是上海交大的源,如果希望使用中科大的源,请参考文档:Centos镜像使用帮助。不过要将$releasever替换为对应的版本号,如RHEL7就替换为7

RHEL6安装指南

制作U盘启动盘

下载ISO安装镜像:http://pan.baidu.com/s/1gdrLC8F#path=%2Fredhat_linux

使用Ultraiso制作U盘启动盘:http://download.pcpop.com/shiyonggongju/guangqugongju/96645.html

注意:如果之前用dd在U盘上写过镜像,需要清零:

dd if=/dev/zero of=/dev/sdx bs=4M count=1000

如果不清零,会出现错误:

Unknown Device : The installation source given by device['/dev/sdb1'] could not be found. Please check your parameters and try again.

检查U盘信息可以得到如下结果:

$ blkid /dev/sdx
LABEL="RHEL_..." TYPE="iso9660"
$ blkid /dev/sdx1
LABEL="RHEL_..." UUID="..." TYPE="vfat"

将安装镜像复制到U盘。

安装破解

按提示安装即可,需要桌面环境的用户在最后选择安装软件的时候要选择 Desktop软件。

执行rhtools/r6中的crack.sh完成破解并更新系统。

RHEL7安装指南

制作U盘启动盘

下载ISO安装镜像:http://pan.baidu.com/s/1gdrLC8F#path=%2Fredhat_linux

umount U盘并写入镜像,注意修改sdb为对应的U盘设备名:

dd if=disk.iso of=/dev/sdb bs=4M

安装破解

按提示安装即可,需要桌面环境的用户在最后选择安装软件的时候要选择 Desktop软件。

执行rhtools/r7中的crack.sh完成破解并更新系统。

RHEL使用指南

软件包管理

yum命令

yum search <pkgname>                    # 搜索软件包
yum install <pkgname>                   # 安装软件包
yum update --skip-broken                # 更新系统

rpm命令

rpm -qa                                 # 查询所有安装的包
rpm -qf <filename>                      # 查询文件属于哪个包
rpm -qi <package>                       # 查询包的信息
rpm -ql <package>                       # 列举包中的文件
rpm -q --whatprovides <bar.so.2>        # 查询依赖包

rpm -qip <package.rpm>                  # 查询未安装的包的信息
rpm -qip <package.rpm>                  # 列举未安装的包的文件

rpm -ivh <package.rpm>                  # 安装软件
rpm -Uvh <package.rpm>                  # 更新软件
rpm -ivh --replacepkgs <package.rpm>    # 替换性安装
rpm -e <package>                        # 删除软件,不要加后缀
rpm -q [options] <package>              # 查询软件信息
rpm -V[fap] <package>                   # 验证软件包

如果安装过程出现如下提示,就需要加上--replacepkgs选项。

Preparing...                ########################################### [100%]
file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20

如果安装过程中提示缺少依赖软件,可以用rpm -q --whatprovides查询所依赖的包的名字。

查询可以提供的选项如下所示:

-f 查询哪个软件包包含指定文件
-p 查询指定的软件包
-i 详细信息
-l 包含的文件列表
-s 包含的文件状态
-d 包含的文档文件
-c 包含的配置文件

yum-config-manager命令

yum-config-manager --add-repo repository_url # 添加仓库
yum repolist all                             # 查看仓库列表
yum-config-manager --enable repository...    # 启用仓库
yum-config-manager --disable repository...   # 禁用仓库

Linux内核开发

安装基本开发环境

如果要开发驱动模块,就需要安装必要的内核开发环境,可以执行如下命令安装。

yum install gcc kernel-devel

编译安装内核

有时候为了重新配置内核,或者向内核添加驱动,就需要从源代码安装内核。

在编译内核之前安装依赖软件包:

yum install rpm-build redhat-rpm-config asciidoc hmaccalc \
    perl-ExtUtils-Embed pesign xmlto
yum install audit-libs-devel binutils-devel elfutils-devel \
    elfutils-libelf-devel
yum install newt-devel numactl-devel pciutils-devel \
    python-devel zlib-devel
yum install gcc ncurses-devel

内核的rpm源码包可以从CentOS server下载,找到对应的版本号,进入os/Source/SPackages/查找要下载的rpm包并下载。使用如下命令将内核源代码安装到~/rpmbuild/目录:

rpm -i kernel-3.10.0-123.el7.src.rpm

通过如下命令编译安装内核:

cd ~/rpmbuild/SPECS
rpmbuild -bp --target=$(uname -m) kernel.spec # 生成源码树
cd ~/rpmbuild/BUILD/<kernel-src>              # 进入源码树
make menuconfig
make
make modules_install
make install

常见问题

调整背光亮度

echo 5 > /sys/class/backlight/acpi_video0/brightness

输入的数字范围为0-10.

安装python-pip

ref: How to install pip on CentOS/RHEL/Ubuntu/Debian

yum install epel-release
yum install -y python-pip

安装vlc

安装vlc需要添加nux-dextop源,添加成功之后执行yum install vlc即可安装,如果过程提示依赖文件无法安装,可能是基本的源缺少某些软件包,推荐换一下基本的源尝试,例如我用163的源安装不成功,换成sjtu的源就能成功了。

安装libQtWebkit.so.4

也需要添加nux-dextop源,执行yum install qtwebkit-devel安装。

查看kernel日志

tail -f /var/log/messages

在内核日志量非常大的时候就会报出如下信息,然后就看不到日志了。

rsyslogd-2177: imjournal: begin to drop messages due to rate-limiting

详细信息请参考 Bug 1123190 ,要想查看所有日志,可以修改文件 /etc/systemd/journald.conf。该文件具体参数的含义可以参考 journald.conf, journald.conf.d — Journal service configuration files ,或者 Man page journald.conf

RateLimitInterval=, RateLimitBurst=
用于配置rate limiting,要想关闭rate limiting最直接的办法是将其中一个值设置为0。其默认值如下所示。
$RateLimitInterval=30s
$RateLimitBurst=1000

然后重启systemd-journald.service。

# systemctl restart systemd-journald.service
service systemd-journald restart
# systemctl restart rsyslog
service rsyslog restart

如果出现如下错误信息,需要删除/var/lib/rsyslog/imjournal.state,然后执行service rsyslog restart重启syslog。详情请参考Bug 1088021

rsyslog-2027: imjournal: fscanf on state file `/var/lib/rsyslog/imjournal.state' failed

添加启动项

如果是双系统安装,安装完成rhel之后,如果看不到Windows启动项,可以按照如下方法配置。创建并编辑文件/etc/grub.d/40_custom。添加如下内容,注意(hd0,1)表示第一个分区,如果Windows不是装载第一个分区,需要相应的作出修改。

#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
menuentry 'Windows system' {
         insmod part_msdos
         insmod ntfs
         insmod ntldr
         set root=(hd0,1)
         chainloader +1
         boot
}

添加好文件之后,执行如下命令更新grub配置,重启即可。

grub2-mkconfig -o /boot/grub2/grub.cfg