b0102 linux centos7.9 操作系统安装和维护
关键词: linux centos ubuntu redhat 操作系统 2021 持续累积
环境
主机: win7
虚拟机: vmware 12
安装文件: CentOS-7.9-x86_64-DVD-2009.iso
输出路径: W:\Virtual Machines\CentOS7
创建普通账户 hadoop
安装过程选择了 带桌面的服务器套件,选了一些软件装上去。
自带: jdk1.8
克隆了若干虚拟机,为后续具体用途使用
功能
安装python3.8 20220514
描述
系统默认自带 python2.7, 由于学习需要, 比如pyspark,pyflink 需要python3.6以上 , 故需要安装
系统自带的python 安装在这个目录下,
/usr/bin/python2.7
,当前目录下,有2个软连接指向它
运行 python,python2 都会启动python2.7
可以执行 whereis python 目录查看信息
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz
安装包说明
这里选择从官网下载的 linux 压缩包 Python-3.8.13.tgz.
个人猜测, 这里是用C语言编写的程序源代码。 需要编译 gcc、make, 编译后 make install 安装。
在这之前,需要 用 yum 安装相应的依赖包
操作
1、 从官网下载 合适的版本linux 包, 这里根据与本人其他 工具 spark-3.1.2-bin-hadoop3.2、flink-1.13.2-bin-scala_2.12 配合, 用 3.8版本。
安装包,放在 T450s\E:\2_工具软件\Python-3.8.13.tgz
以下所有操作都用root 用户,root 用户安装后, 其他用户可以使用python3
2, 安装依赖(确保网络通畅 )
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel python-devel gcc make
3. 上传安装包、解压
解压到哪里个目录,不重要, 最后安装的目录和解压到目录不一样
这里解压到 /opt/Python-3.8.13
4. 安装, 这里选择一个安装目录如下。 要个几分钟
# --prefix是Python的安装目录 ./configure --prefix=/usr/python3 make make install
安装成功后
5. 创建软连接
ln -s /usr/python3/bin/python3.8 /usr/local/bin/python3
ln -s /usr/python3/bin/pip3 /usr/bin/pip # 可选 删除python 2.7的软连接。 rm /usr/bin/python ln -s /usr/python3/bin/python3.8 /usr/bin/python
6. 验证
python -V
pip
无需配置路径变量
后续
centos 的包安装命令 yum,只能用到python2, python3 下报以下错
[root@hc2108 0_new]# yum File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
解决:
将 /usr/bin/yum 的第一行改成 #!/usr/bin/python2.7
https://blog.csdn.net/weixin_49978753/article/details/124451984
参考
ref T450s\d:计算机\2_学习笔记\..\20220514_linux_centos_安装python3.8.txt
ref Linux上安装python3
ref "Linux系统安装Python3环境(超详细)"
ref "Linux安装Python3详解"
ref "fatal error: ffi.h: No such file or directory问题的解决"
安装jdk1.8 20210727
描述
系统安装完成,自带jdk1.8, 但是只有jre。后续操作需要全面的jdk, 需要卸载重装
操作
1. win环境下 从oracle 官网下载 jdk-8u301-linux-x64.tar.gz, 上传到linux 目录中
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
2. 查看和卸载原来自带不想要的jdk
java -version # 查看java版本 rpm -qa | grep java # 查看安装的java包 rpm -qa | grep jdk sudo rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 # 卸载 sudo rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64
3. 将下载的 jdk-8u301-linux-x64.tar.gz 解压,并移动到安装目录下, 我这里选定 /opt
tar -zxvf jdk-8u301-linux-x64.tar.gz mv jdk1.8.0_301 /opt
4. 修改环境变量
执行 sudo vi /etc/profile
在文件中添加以下内容:
### 配置jdk export JAVA_HOME=/opt/jdk1.8.0_301 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=./:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin
执行 source /etc/profile 生效。
5. 最后验证完毕
参考
ref1 "centos7 安装JDK1.8详细过程"
关闭防火墙 20210725
描述
默认防火墙应该开了,会妨碍一些分布式集群比如hadoop 机器之间的通信。 需要关闭
操作
systemctl status firewalld #查看firewall服务状态 systemctl stop firewalld # 关闭防火墙 systemctl disable firewalld # 禁止开机启动
防火墙开启中
关闭后
为当前用户增加sudo功能和免密码输入 20210725
描述
当前用户为hadoop,是普通用户,有时需要通过sudo执行需要更多权限才能执行的操作。centos默认没有给普通用户sudo功能,需要手动添加
操作
主要参考 ref1 "centos7 ubuntu14 添加sudo 权限"
root账户 修改文件 /etc/sudoers,参考下图
1. 添加黄色背景的信息,其中hadoop是用户名。 这样hadoop有了sudo权限了
2. 用户有sudo权限,但是每次操作需要输入密码,很麻烦。 将红色箭头指示那行前面的注释符号#去掉(本来有的),
添加用户名到wheel用户组:
usermod -G wheel hadoop
:wq! 保存退出 就生效了
设置静态ip和主机名 20210724
描述
当前为动态获取ip,主机名是centos, 依据后面需要固定成指定的名字
操作
1. 先设置静态网络, root账户修改网络文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,改动如下。 改完后,执行命令重启生效 service network restart
2. 修改主机名
参考 ref3 "CentOS7修改主机名的三种方法" , 执行以下操作
a. 执行命令改主机名 hostnamectl set-hostname hc2101, hc2101是新的主机名
b. root下修改hosts文件,添加新主机名字
c. 重启
后记: 只需要添加第3行就可以了
参考
ref1 "centos7设置静态IP地址"
ref2 "如何为CentOS 7配置静态IP地址的两种方法"
英文变中文和中文语言 20210724
描述
系统默认是英文系统, 所有提示都是英文的。
加入中文输入法,可以切换
操作
定位到路径 下 应用程序/系统工具/设置/Region & Language, 对应英文路径也好找
按图中红色标记设置好。 改系统语言,增加中文输入法
定位到路径 下 应用程序/系统工具/设置/设备/Keyboard
修改输入法切换快捷键,根据个人习惯设置就行了
参考
ref1 "Centos7设置中文输入法及解决方法"
ref2 "CentOS 7 无法使用中文输入法"
问题
网络域名不通 20220514
现象:
vmware linux ,可以ping通网络ip,无法ping通域名。
linux采用桥接模式, 静态ip。 网关路由器 192.168.1.1
解决;
修改网卡
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth1
增加 DNS1=192.168.1.1
重启
service network restart
Shell 命令用不了 20210728
现象:
修改/etc/profile后。 突然出现问题了。
可以开机, 但是无法登陆进去。
可以xshell 连接, 但是无法执行大部分shell命令
其他机器可以ssh 连上,但是无法执行大部分shell命令
如同所示
原因:
本来应该在/etc/profile 中 加入这行
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
但是直接从 博客园复制过来后(博客园美元符号有问题),变成了,美元符号不见了 (问题见 b0111 博客园日常使用遇到的/问题/Q1)
export PATH=PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
导致整个shell都用不了
解决:
还是可以使用 echo ,export set 查看环境变量
1、 先在shell 界面执行 重置 PATH的值,其中后面的值, 从相似的其他机器上复制过来的。
echo $PATH # 注意看有没有设置错误,漏掉美元符号
echo $SHELL # 正常是 /bin/bash
export PATH=/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/jdk1.8.0_301/bin:/home/hadoop/.local/bin:/home/hadoop/bin
执行上面完,shell命令就可以正常执行了
2、 修改之前改动的 /etc/profile 文件
把错误的地方,没有美元$符号的加上去
执行 source /etc/profile 生效
调正系统日期 20210723
现象:
日期不对。
解决:
1. 校准时间: date -s "19:07:10 2021-07-23" # 这里的日期要校准的日期
2. 硬件层面同步 clock --systohc
忘记是否要重启
无法连接网络 20210721
现象:
虚拟机NAT网络设置,动态分配IP,其他虚拟机在这种模式下可以用。
本虚拟机刚安装完成, 但是本机无法ping通网络, 用ifconfig ,即没有ip地址,也没有mac地址。
在 /etc/sysconfig/network-scripts/ 下的是 ifcfg-ens33网卡
原因:
具体不详, centos7的网络和centos6有点不一样 。
网上说要把centos7下的 ifcfg-ens33改名为 ifcfg-eth0 (个人安装的ubuntu,centos6.5都不用这样操作 )
解决:
1 . 改网卡信息,先不要重启, 结果以本文图片输出参数为校准目标 参考 ref1 "vmware安装centos7 输入ifconfig出现ens33,没有eth0"
2. 搞定没有ip地址和hwaddr, 参考 ref2 "Centos7克隆虚拟机之后,不显示ip地址......"
确保 ifcfg-eth0文件中 有一行 "HWADDR=.....",没有就添加, 地址在ref2中 图片 生产Mac地址那
备注: 后续验证发现, 没有hwaddr也可以正常获得ip
3. 确保其他参数都和 本文 ifcfg-eth0 参数保持一致, 比如,onboot=yes,
其他参考
ref3 ”centos7中的网卡一致性命名规则、网卡重命名方法“
相关命令:
重建适配器 1.systemctl stop NetworkManager 2.systemctl disable NetworkManage service network restart # 重启网关
正常情况下:
最终可用的网络的配置参数如下
虚拟机设置NAT模式,vmware 自动分配ip
----
----
相关
- 关联代码, disk/202107_linux_centos7.txt
- 博客园 "b0103 vmware workstation 虚拟机 使用和维护”