Fork me on GitHub

安装和配置centOS7[含桌面环境]

在vmware中配置CentOS

本篇日志是我在VMWare中虚拟出CentOS7后,在使用的过程中所遇到的一些问题小结,并且还有些一些系统命令需要记忆下来,为防止以后忘记,所以写了这个日志

至于如何安装 Vmware workstation软件,以及如何在 vmware中安装centos操作系统,请自行百度一下。

为什么要虚拟出CentOS?

CentOS是 Redhat Linux衍生出来的,功能丰富、强大,完全支持rpm包以及使用yum命令进行安装,下载CentOS时,有多种版本可以选择,如下:

  • DVD版本【我们选择这个】,功能丰富
  • Minimal【极简化版】,只有核心功能,适合定制化的高级用户。

官网地址:https://www.centos.org/

理解rpm包和yum命令

rpm,全称redhat package manager,是一种linux下的软件包管理器,一般的扩展名为 .rpm, 如果是二进制发行包,则直接以 .rpm结尾,如果是源代码包发行,则一般是以 .src.rpm结尾,而源代码包将会由rpm自动编译、安装。

yum,(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装[来自百度百科]

从面的描述中可以看出,linux系统中,redhat,centos,fedora 都是基于rpm和yum做为软件包管理器的,而还有一类linux的分支,以是debian格式进行软件安装和管理的,主要是ubuntu系统,它所使用的前端软件包管理器是 apt-get, 有关yum和apt-get的区别,简单理解就是针对不同的linux系统,分别做了一套软件包管理器,它们的功能一样,如下:

在 CentOS, Fedora, RedHat中,使用

1
2
3
yum install <package_name>     	//安装软件包
yum remove <package_name> //卸载软件包
yum update <package_name> //更新软件包

在ubuntu中,使用

1
2
3
apt-get install <package_name>     	//安装软件包
apt-get remove <package_name> //卸载软件包
apt-get update <package_name> //更新软件包

两种都是基于“云”端的模式进行软件包的管理。当然,命令的选项和一些细节还是不同的,详情需要查看各自的手册.

当然,我们也可以下载 .rpm 格式的文件进行手动安装,rpm 命令常用的选项有:

1
2
3
4
5
6
7
-ivh:安装显示安装进度--install--verbose--hash
-Uvh:升级软件包--Update;
-qpl:列出RPM软件包内的文件信息[Query Package list];
-qpi:列出RPM软件包的描述信息[Query Package install package(s)];
-qf:查找指定文件属于哪个RPM软件包[Query File];
-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];
-e:删除包

另外需要注意的是,还有些软件包是以 .tar.gz或.tar或.gz 等压缩格式发行的,这种软件包就需要通过解压缩命令进行解压,比如:

  • 针对 .tar 格式,则可以通过 tar xvf xxxx.tar 进行解压
  • 针对 .gz 格式, 则可以通过 gzip -d xxx.gzgunzip xxxx.gz 进行解压
  • 针对 .tar.gz 格式,则可以通过 ‘tar zxvf xxxx.tar.gz’ 进行解压

理解systemctl的作用

systemctl命令是Linux的系统管理命令,systemd是Linux系统最新的初始化系统(init),作用是提高系统的启动速度,尽可能启动较少的进程,尽可能更多进程并发启动。systemd对应的进程管理命令是systemctl,systemctl命令兼容了service,即systemctl也会去/etc/init.d目录下查看,执行相关程序

注:早期的linux系统,是通过 /etc/init.d 目录来管理自启动的服务的,现在通过 /etc/systemd 目录来管理,一般来说,通过yum install <package_name>安装的程序,会自动生成 xxx.service文件【在/etc/systemd】目录下。但如果是通过解压后的程序,需要我们手动创建 xxx.service文件, 比如我安装的redis,如果需要开机自启动的话,则需要如下配置
路径:/etc/systemd/system/redis.service
内容如下:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=redis-server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

注:ExecStart是指向redis-server的位置以及读取的配置文件位置。

配置lightdm桌面[安装图形化界面]

  • 第一步:安装桌面协议 “X Window System”

    1
    yum groupinstall -y "X Window System"
  • 第二步:安装额外包yum源(extra package for Enterprise Linux)

    1
    yum install -y epel-release
  • 第三步:安装lightdm

    1
    yum install -y lightdm
  • 第四步:安装 xfce

    1
    yum groupinstall -y xfce
  • 第五步:配置lightdm.conf 文件

    修改配置文件 /etc/lightdm/lightdm.conf,如下:

    1
    2
    3
    4
    5
    6
    7
    8
    ...

    [XDMCPServer]
    enabled=true
    port=177

    ...
    ...

原来enabled=false,打开注释后改为true
把port=177的注释打开

  • 第六步:把默认的gdm桌面关闭,并启动 lightdm 服务

    1
    2
    3
    4
    --先执行关闭gdm
    systemctl disable gdm
    --再执行启用 lightdm
    systemctl enable lightdm
  • 第七步:启动lightdm

    1
    systemctl start lightdm
  • 第八步:修改开机启动模式

    编辑 /etc/inittab 文件,打开graphical.target 一行的注释,结果如下:

    1
    2
    3
    4
    ...
    # multi-user.target: analogous to runlevel 3
    graphical.target: analogous to runlevel 5
    ...
  • 第九步:设置启动模式

    1
    systemctl set-default graphical.target

注:yum install 和 yum groupinstall 都是yum安装软件的方式,区别如下:

  • yum install 它安装单个软件,以及这个软件的依赖关系
  • yum groupinstall 它安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系

我们可以通过 yum info <package_name>yum groupinfo <packages_name> 来查看软件和软件包的信息。

中文方块字解决

Centos7 中没有安装中文字体,安装好Xfce,直接进入会出现乱码。所以先安装中文字体,防止进入Xfce出现中文乱码

  • 首先,安装字体软件包【也可以安装单一的字体】

    1
    yum groupinstall fonts
  • 其次,进入到fonts安装的目录

    1
    cd /usr/share/fonts
  • 最后,执行如下命令

    1
    fc-cache -fv

此命令表示构建字体信息的缓存文件,-fv 是选项,详情可执行man fc-cache

At Last, 重启系统即可, 执行 reboot

查看当前系统的语言,可以通过命令cat /etc/locale.conf 来查看[确保是中文]

systemctl命令参考

Systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。Systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。

systemctl 命令集有

  • systemctl –verion //查看systemd的版本
  • systemctl start | restart | stop | reload | status //启动|重新启动|停止|重新加载|查看状态
  • systemctl disable | enable | is-active | is-enable //关闭 | 启动 | 判断是否激活 | 判断是否启用
  • systemctl list-units //列出所有运行单元
  • systemctl list-unit-files //列出所有可用的单元
  • systemctl list-unit-files –type=service | socket | mount //使用服务、套接字、挂载点 进行过滤可用的单元
  • systemctl –failed //列出所有失败的单元
  • systemctl show //检查服务的所有配置详情
  • systemctl list-dependencies //获取服务的依赖项列表

安装redis数据库

  • 第一步:下载 redis的安装包
    下载redis
    或者通过wget download.redis.io/releases/redis-5.0.7.tar.gz 下载

  • 第二步:利用 tar 命令解压

    1
    tar -zxvf redis-xxx.tar.gz
  • 第三步:执行 make

    1
    make
  • 第四步:执行 make install

    1
    make install

注:默认情况下,CentOS系统中没有安装 gcc 组件,在执行 make 之前,需要安装一下 gcc,如下

1
yum install gcc

提示输入字母时,输入 y 即可

启动 redis

  1. 可以在命令行中直接启动 redis-server, 这种方式不是以后台服务方式启动,要占用一个命令行窗口,使用不太方便。

  2. 把redis加入到开机自启动项中,操作如下

  • 2.1 把redis解压目录下的redis.conf文件copy一份到redis-server安装目录,默认是/usr/local/bin [可以通过whereis redis-server 来查看]
  • 2.2 修改 /usr/local/bin/redis.conf文件,把 daemonize的值改为yes
  • 2.3 在/etc/systemd/system/目录下创建一个 redis.service 文件,内容如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [Unit]
    Description=redis-server
    After=network.target

    [Service]
    Type=forking
    ExecStart=/usr/local/bin/redis-server /usr/local/bin/redis.conf
    PrivateTmp=true

    [Install]
    WantedBy=multi-user.target
  • 2.4 执行systemctl enable redis.service 来启用 redis 服务

  • 2.5 执行systemctl start redis.service 来启动 redis 服务【以后开机不用再执行此行命令,会自启动】