文章目录
- vmware虚拟机安装openEuler 20.03 LTS
- 安装硬件设备(略)
- 安装OS
- 镜像下载
- 镜像版本发布说明
- 开始安装(vmware虚拟机)
- 安装操作系统
- 必要操作
- 关闭防火墙
- 设置selinux为宽容模式
- 系统内核问题
- 禁用系统内核更新
- ~~禁用yum update和dnf update对一切软件包的升级~~ (不能这样,这样docker装不了了)
- 安装其他依赖
- net-tools(==不装,装了也没有ifconfig命令,建议用默认的ip addr show命令==)(貌似后面在昇腾服务器openEuler20.03里安装依赖后,ifconfig可用了,不知道是不是装了net-tools的缘故)
- dnf update为什么把我内核升级了?(需要0禁用内核升级,同时不要用dnf update)
- openssh
- 设置PermitRootLogin yes(使能直接远程root登录)
- samba
- 配置防火墙(否则无法访问)(可选直接关闭防火墙)
- 注意:openEuler跟CentOS类似,还需要配置selinux,否则还是没法访问一些目录
- 安装tar命令
- 安装python3.8.10
- openeuler20.03系统里dnf可以跟yum混着用吗,它们安装的包会不会有冲突?
- python虚拟环境之前用python -m venv xxx做的,有点问题,可能要重做一下,要用python -m venv xxx....
- 安装docker(官方方案)(没装成功)
- 检查源(openEuler系统)
- 安装Docker
- 安装docker(方案2)(没成功)
- 一些错误
- 安装docker(方案3)(不成功)
- 一些报错
- 安装docker(方案5)(不成功)
- netplan
- 安装nmap工具(支持ip_change_service python-nmap库调用)
- 还是安装openEuler 22.03 LTS吧(?)
vmware虚拟机安装openEuler 20.03 LTS
https://www.hiascend.com/document/detail/zh/quick-installation/23.0.RC3/quickinstg/800_3000/quickinstg_800_3000_0004.html
安装硬件设备(略)
安装OS
https://support.huawei.com/enterprise/zh/ascend-computing/a800-3000-pid-250743608?category=installation-upgrade&subcategory=software-deployment-guide
https://support.huawei.com/enterprise/zh/doc/EDOC1100258048?idPath=23710424%7C251366513%7C22892968%7C252309139%7C250743608
镜像下载
https://www.openeuler.org/zh/download/archive/
在软件版本命名中,“SPx"通常代表"Service Pack x”,其中"x"是一个数字,用来指示这是第几个服务包。服务包(Service
Pack)是对软件原始版本的一系列更新、补丁和改进的集合。它们通常包括安全修复、性能提升、以及新增的功能,目的是提高软件的稳定性和兼容性。例如,openEuler 20.03 LTS SP4表示openEuler 20.03长期支持版的第四个服务包。这些服务包让用户可以一次性安装多个更新,而不需要单独下载和安装每一个小的更新或补丁,从而简化了维护流程并减少了系统因频繁更新而可能出现的问题。
如果您在安装昇腾服务器的CANN(Compute Architecture for Neural
Networks)时,提示需要openEuler 20.03 LTS作为操作系统,那么选择安装openEuler 20.03 LTS SP4是更好的选择。原因如下:
最新的服务包:SP4是openEuler 20.03 LTS系列中最新的服务包,它包含了从原始版本到现在所有的安全补丁、性能改进和新功能。这意味着使用SP4可以让您的系统达到最高的稳定性和安全性。
长期支持:根据您提供的信息,openEuler 20.03 LTS SP4的支持时间比SP1要长。SP4的支持截止到2025年12月,而SP1的支持则在2022年12月结束。长期支持意味着您可以享受更长时间的更新和安全补丁,无需担心在近期内进行重大升级。
向后兼容性:服务包设计的目的之一就是保证向后兼容性。这意味着如果CANN软件与openEuler 20.03 LTS兼容,它也应该与20.03 LTS的任何服务包(SP1, SP2, SP3,
SP4等)兼容。通常,软件开发者和硬件制造商会推荐使用最新的服务包,以确保系统的稳定性和安全性。综上所述,选择安装openEuler 20.03 LTS SP4不仅可以满足安装昇腾服务器CANN的基本要求,还可以为您的系统提供更长期的支持和更好的性能。
我们下载 openEuler 20.03 LTS SP4 Offline Standard ISO:
镜像版本发布说明
这里有版本发布说明:https://docs.openeuler.org/zh/docs/20.03_LTS_SP4/docs/Releasenotes/release_notes.html
开始安装(vmware虚拟机)
安装操作系统
一系列操作后重启下就好了。。
看系统内核是4点几的,默认python3版本是3.7.9
必要操作
关闭防火墙
参考文章:CentOS7关闭防火墙(firewalld)(虚拟机只能ping通外面,外面不能ping通里面)Ubuntu关闭防火墙
sudo systemctl status firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo systemctl status firewalld
设置selinux为宽容模式
sestatus
可以将SELinux设置为"permissive"模式。在这种模式下,SELinux仍然会运行并记录违规行为,但不会阻止任何活动。
这是一个可以尝试的步骤:
编辑SELinux配置文件:
sudo vi /etc/selinux/config
找到这一行:
SELINUX=enforcing
,将其更改为SELINUX=permissive
。
保存并退出vi编辑器(输入
:wq
然后回车)。重启你的系统使改动生效:
sudo reboot
在你的系统重新启动后,SELinux应该会处于"permissive"模式。你可以通过运行sestatus
命令来确认这一点。
系统内核问题
直接断网安装后的系统内核是4.19.90-2312.1.0.0255
:
但是如果执行dnf update
,会升级系统内核,升级后变成4.19.90-2402.4.0.0264
:
(过了几天,我执行dnf update,它又给我升级了,看起来升到另一个版本,但是用uname -a
看没变化:4.19.90-2402.4.0.0264.oe2003sp4.x86_64
了)
禁用系统内核更新
如果升级内核有问题,最好禁用dnf内核升级功能,参考方法:
dnf update
命令是用于升级你系统中所有已安装的软件包到最新版本的命令,包括操作系统内核。这意味着如果有新的内核版本可用,该命令会将其下载并更新。通常来说,保持内核更新是一种良好的做法,因为新的内核版本往往会修复旧版本中存在的漏洞,增加新的特性或者改进性能。然而,如果由于某些原因(如硬件兼容性问题或特定软件对特定内核版本的依赖等)你不希望自动升级内核,可以采取以下步骤:
首先,打开DNF配置文件。在终端输入以下命令:
sudo vi /etc/dnf/dnf.conf
在打开的编辑器中,添加或修改以下行:
installonly_limit=3 exclude=kernel*
这样就可以保留最近的三个内核版本,并排除任何进一步的内核更新。
保存并关闭文件。在vi编辑器中,你可以通过按
:
,然后按wq
和Enter
来完成。最后,你需要清理并重新生成元数据缓存,以确保DNF遵守新的设置。你可以使用以下命令:
sudo dnf clean all
注意,以上步骤会阻止内核的自动更新。如果你想要手动更新内核,你需要暂时移除
exclude=kernel*
这一行,然后运行dnf update
,之后再次添加回去。
是的,如果你的 openEuler 系统同时使用了 Yum 和 DNF,那么你需要在两个工具中都设置禁止内核更新。
这主要包括以下两步:
对于 Yum:
- 如果已启用
yum-cron
服务,需要停止并禁用它。- 在
/etc/yum.conf
文件中,添加exclude=kernel*
到[main]
部分。对于 DNF:
- 如果已启用
dnf-automatic
服务,需要停止并禁用它。- 在
/etc/dnf/dnf.conf
文件中,添加exclude=kernel*
到[main]
部分。同时,请注意,如果你使用了其他的软件进行内核更新(比如 KernelCare),你还需要根据该软件的文档禁用它的自动更新功能。
禁用yum update和dnf update对一切软件包的升级 (不能这样,这样docker装不了了)
如果你想阻止所有软件包的更新,可以通过在yum或dnf配置文件中设置exclude参数来实现。
对于yum,你需要编辑/etc/yum.conf
文件:
- 打开一个终端。
- 输入
sudo nano /etc/yum.conf
来编辑文件。如果nano不可用,你可以使用vi或者vim。 - 在
[main]
部分下面添加一行exclude=*
。 - 保存并关闭文件。
对于dnf,你需要编辑/etc/dnf/dnf.conf
文件:
- 打开一个终端。
- 输入
sudo nano /etc/dnf/dnf.conf
来编辑文件。如果nano不可用,你可以使用vi或者vim。 - 在
[main]
部分下面添加一行exclude=*
。 - 保存并关闭文件。
这样做之后,无论何时运行yum update
或 dnf upgrade
,都不会更新任何软件包。如果你想要更新某个特定的软件包,你需要临时移除 exclude=*
,或者直接使用命令 sudo yum --disableexcludes=all update <package_name>
或 sudo dnf --disableexcludes=all upgrade <package_name>
。
请注意,禁止所有软件包的更新可能会导致系统和应用程序漏洞未能得到修复,从而带来安全风险。所以只有在你完全了解可能的后果的情况下才应采取这种策略。
安装其他依赖
注意把下面一些必要操作提前,比如换源。
其次一些安装有困难的提前,比如docker,装着还报错了不知道咋回事。。。
net-tools(不装,装了也没有ifconfig命令,建议用默认的ip addr show命令)(貌似后面在昇腾服务器openEuler20.03里安装依赖后,ifconfig可用了,不知道是不是装了net-tools的缘故)
net-tools
是一组用于管理网络配置的命令行工具。如果你正在使用Openeuler 20.03操作系统,可以通过以下步骤来安装:
首先,打开你的终端。
使用以下命令来安装net-tools
:
sudo dnf install net-tools
输入你的密码后,你的系统将开始下载并安装net-tools
。可能会询问你是否愿意安装这些包,如果是这样,只需按y
或者Enter
即可。
最后,你可以使用如下命令来确认net-tools
已经成功安装:
ifconfig
如果返回了一些网络信息(例如IP地址、子网掩码等),那么net-tools
就已经成功安装了。
dnf update为什么把我内核升级了?(需要0禁用内核升级,同时不要用dnf update)
参考文章:禁止yum update自动更新系统内核
dnf update
命令是用于升级你系统中所有已安装的软件包到最新版本的命令,包括操作系统内核。这意味着如果有新的内核版本可用,该命令会将其下载并更新。
openssh
在OpenEuler 20.03上安装openssh-server
的步骤如下:
-
首先,打开终端。
-
使用以下命令更新你的包列表,以确保你有最新的版本和依赖关系信息:sudo dnf update
-
然后,你可以使用以下命令来安装
openssh-server
:sudo dnf install openssh-server
(后面步骤好像不需要了👇👇👇)
-
安装完成后,启动SSH服务:
sudo systemctl start sshd
-
若要使SSH服务在系统启动时自动运行,可以使用以下命令:
sudo systemctl enable sshd
-
最后,你可以使用如下命令来检查SSH服务是否正在运行:
sudo systemctl status sshd
如果返回的信息中包含active (running)
,那么openssh-server
就已经成功安装并正在运行了。
设置PermitRootLogin yes(使能直接远程root登录)
好像不用设置,我进去看默认就是允许的:
cat /etc/ssh/sshd_config
samba
在OpenEuler 20.03上安装Samba的步骤如下:
-
首先,打开终端。
-
使用以下命令更新你的包列表,以确保你有最新的版本和依赖关系信息:sudo dnf update
-
然后,你可以使用以下命令来安装Samba:
sudo dnf install samba
(下面操作是必须的👇👇👇)
-
安装完成后,启动Samba服务:
sudo systemctl start smb sudo systemctl start nmb
nmb
是Samba服务的一部分,负责NetBIOS over
TCP/IP名称服务和浏览服务。NetBIOS(网络基本输入/输出系统)是许多早期Windows网络服务的基础,尽管新的Windows版本已经转向更现代的网络技术,但在一些环境中,NetBIOS依然被使用。当你运行命令
sudo systemctl start nmb
时,你实际上是启动了Samba套件中的nmbd
服务,它用于处理与NetBIOS名称相关的各种任务,如名称解析。总的来说,如果你在Linux服务器上运行Samba并希望它能够与Windows客户端或其他支持NetBIOS的设备互动,你通常需要同时运行
smbd
(提供文件和打印服务)和nmbd
服务。
-
若要使Samba服务在系统启动时自动运行,可以使用以下命令:
sudo systemctl enable smb sudo systemctl enable nmb
-
最后,你可以使用如下命令来检查Samba服务是否正在运行:
sudo systemctl status smb sudo systemctl status nmb
如果返回的信息中包含active (running)
,那么Samba就已经成功安装并正在运行了。
为什么在ubuntu20.04上直接apt install samba,服务就自动启动了,而在openeuer20.03中,执行dnf install samba后还需要手动启动samba服务?
这其实取决于特定发行版的包管理器如何配置和处理软件包的后安装步骤。Ubuntu和OpenEuler可能对这些步骤有不同的处理方式。在Ubuntu中,当你使用
apt install
命令安装Samba时,它不仅会安装Samba,而且还会自动启动Samba服务,并将其设置为在每次启动时自动运行。这是因为Ubuntu的软件包维护者决定了这样的默认行为。然而,在OpenEuler中,
dnf install
命令只负责安装Samba,但并不会自动启动Samba服务或将其设置为开机启动。在OpenEuler中,你需要手动执行这些操作。这种差异反映了不同的设计理念和用户期望。Ubuntu偏向于为用户提供一个“开箱即用”的体验,而OpenEuler等其他一些发行版则倾向于让用户有更多的控制权,包括决定何时启动和停止服务。
👇👇👇
接下来按照https://dontla.blog.csdn.net/article/details/120165149操作
vi /etc/samba/smb.conf
最下方添加(注意path后面写你想共享的目录路径):
[rootdir]
path = /
guest ok = no
writable = yes
browsable = yes
service smb restart
创建root用户:
smbpasswd -a root
systemctl restart smb
配置防火墙(否则无法访问)(可选直接关闭防火墙)
firewall-cmd --add-service=samba --permanent
firewall-cmd --reload
然后就可以访问了:
注意:openEuler跟CentOS类似,还需要配置selinux,否则还是没法访问一些目录
可以将SELinux设置为"permissive"模式。在这种模式下,SELinux仍然会运行并记录违规行为,但不会阻止任何活动。
这是一个可以尝试的步骤:
编辑SELinux配置文件:
sudo vi /etc/selinux/config
找到这一行:
SELINUX=enforcing
,将其更改为SELINUX=permissive
。
保存并退出vi编辑器(输入
:wq
然后回车)。重启你的系统使改动生效:
sudo reboot
在你的系统重新启动后,SELinux应该会处于"permissive"模式。你可以通过运行sestatus
命令来确认这一点。
然而,请注意,虽然这可能解决你当前的问题,但这样做会降低你系统的安全性,因为SELinux不再阻止任何潜在的恶意行为。我建议使用这种方法作为临时的故障排除步骤,而不是长期的解决方案。在确定了问题的根源之后,你应该尽快将SELinux返回到"enforcing"模式,并适当地调整策略以允许所需的访问。
安装tar命令
安装tar命令:
sudo dnf install tar
安装python3.8.10
在openEuler系统中安装特定版本的Python需要一些步骤。下面是安装Python 3.8.10的步骤:
更新系统:首先更新你的系统,确保所有的包都是最新的。sudo yum update
- 安装依赖:接下来,我们需要安装一些编译Python的必要工具。
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel
- 下载Python:现在,你可以从Python的官方网站下载所需版本的源代码。
wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
- 解压文件:下载完成后,解压tar文件。
tar xvf Python-3.8.10.tgz
- 编译与安装:进入解压后的目录,编译并安装Python。
cd Python-3.8.10 ./configure --enable-optimizations make altinstall
注意,这里我们使用make altinstall
而不是make install
,原因是这样可以避免替换默认的Python二进制文件。
- 检查Python版本:通过执行以下命令,确认Python 3.8.10已经成功安装。
python3.8 -V
以上步骤应该能够帮助你在openEuler系统上安装Python 3.8.10。
安装好后最终显示如下:
openeuler20.03系统里dnf可以跟yum混着用吗,它们安装的包会不会有冲突?
openEuler20.03系统中的
dnf
和yum
都是包管理工具,可以用来安装、更新、删除和管理系统中的软件包。在最新的Linux发行版中,
dnf
已经替代了yum
作为默认的包管理工具。这两个工具有很多共享的功能,但dnf
在依赖解析、速度和用户界面等方面进行了改进。你可以在同一个系统中同时使用
dnf
和yum
,它们不会引起软件包冲突,因为它们实际上都是与RPM(Red Hat Package
Manager)后端交互,操作同一套软件库。然而,虽然你可以在同一个系统中混合使用这两个工具,但最好还是坚持使用其中一个,以保持操作的一致性。如果你的系统支持
dnf
,那么建议你优先使用dnf
,因为它是更现代化的工具,提供了更好的性能和更准确的依赖解析。
python虚拟环境之前用python -m venv xxx做的,有点问题,可能要重做一下,要用python -m venv xxx…
安装docker(官方方案)(没装成功)
参考昇腾官网提供的docker安装方法
部署Docker(openEuler)
检查源(openEuler系统)
https://www.hiascend.com/document/detail/zh/quick-installation/23.0.RC3/quickinstg/800_3000/quickinstg_800_3000_0012.html#ZH-CN_TOPIC_0000001635592816__section14243151985613
root执行:
yum makecache
yum makecache
是一个Linux命令,它主要用于生成并更新YUM(Yellowdog Updater,
Modified)包管理器的元数据缓存。在更具体的语境中,当你运行
yum makecache
命令时,它会从所有配置的存储库中下载头文件来创建一个缓存。这个缓存能够帮助YUM快速执行各种操作,比如搜索软件包或检查可用更新。然而,需要注意的是,在现代的Linux发行版(例如 CentOS 7 和 Fedora 22
或更新版本)中,yum
已经被dnf
替代。对应的命令是dnf makecache
,其功能和yum makecache
一样,都是用来生成和更新包管理器的元数据缓存。简单总结,
yum makecache
的作用是加快软件包搜索和更新的速度。
没啥问题就不执行后续操作了,说是如果太慢就考虑换源
👇换源👇
以openEuler20.03为例,将以下内容复制到/etc/yum.repos.d/openEuler_aarch64.repo
文件中(注意,这个源可能失效,要另外找源):
vi /etc/yum.repos.d/openEuler_aarch64.repo
[openEuler-os]
name=openEuler-os
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-20.03-LTS/OS/aarch64/
enabled=1
gpgcheck=0
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-20.03-LTS/OS/aarch64/RPM-GPG-KEY-openEuler
再执行:
yum makecache
安装Docker
root执行:
yum install -y docker
不行,太慢了,按照上一步换个源
换源后确实快不少:
怎么提示Faild?
启动docker也失败了:
[root@localhost ~]# systemctl start docker
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.
卸载docker:
如果你想卸载通过 yum 安装的 Docker,可以按照以下步骤操作:
- 停止 Docker 服务:
bash sudo systemctl stop docker
- 使用 yum 命令卸载 Docker 包:
bash sudo yum remove docker
这将删除 Docker 的二进制文件,但不会删除任何图像、容器、卷或用户创建的配置文件。如果你希望删除所有 Docker 数据和配置文件,可以删除 Docker 的数据目录。默认情况下,这些目录是
/var/lib/docker
和/etc/docker
。
- 如果你也想删除所有 Docker 相关的数据(包括镜像、容器和卷),你需要手动删除
/var/lib/docker
目录:
bash sudo rm -rf /var/lib/docker
请注意,在删除任何文件之前,应确保已备份所有重要数据。
会不会华为搞得源有问题啊:
如果你的yum源配置错误或者指向了错误的仓库,可能会导致你安装的库版本不对。Yum源就像是软件库的一个索引,它告诉系统从哪里下载并安装软件。如果这个索引指向的地方不正确,那么你可能会下载到错误的版本,或者甚至根本无法找到你需要的库。
例如,你可能想要安装一个特定版本的库,但是你的yum源可能指向了包含不同版本库的仓库,这样你通过yum安装时可能就会得到一个错误的版本。或者你的yum源可能已经过期或被破坏,导致你无法正常安装任何库。
因此,正确配置yum源非常重要。当遇到问题时,一定要检查你的yum源是否正确,并确保它们指向正确的仓库。
安装docker(方案2)(没成功)
在CentOS上安装Docker可以通过以下步骤完成:
-
更新你的包索引:sudo yum update
-
卸载旧版本的Docker。如果你之前已经安装过Docker,你需要先卸载它:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
设置Docker存储库。安装一些必要的包来让yum使用HTTPS:
(注意:在 CentOS 8 及其后续版本中,yum-utils 被替换为 dnf-utils)sudo yum install -y dnf-utils device-mapper-persistent-data lvm2
-
添加Docker的官方存储库:
sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
-
安装Docker CE:
sudo yum install docker-ce docker-ce-cli containerd.io
-
启动Docker:
sudo systemctl start docker
-
验证Docker是否正确安装。运行一个简单的hello-world镜像:
sudo docker run hello-world
-
开机自启动Docker:如果你想让Docker在每次系统启动时自动运行,你可以执行下面的命令:
sudo systemctl enable docker
以上步骤应该能帮助你在CentOS上成功安装Docker。
一些错误
执行
sudo yum install docker-ce docker-ce-cli containerd.io
:
错误消息显示,无法下载https://download.docker.com/linux/centos/20.03LTS_SP4/x86_64/stable/repodata/repomd.xml,这个URL是Docker
CE存储库为CentOS 20.03LTS SP4版本提供的地址,但是Docker可能并不支持这个版本。
安装docker(方案3)(不成功)
看起来你在尝试从Docker的官方存储库中安装Docker时遇到了问题。这可能是因为存储库没有你的CentOS版本的支持。
错误消息显示,无法下载https://download.docker.com/linux/centos/20.03LTS_SP4/x86_64/stable/repodata/repomd.xml
,这个URL是Docker CE存储库为CentOS 20.03LTS SP4版本提供的地址,但是Docker可能并不支持这个版本。
如果你的系统是RHEL或者其派生版,并且基于2003版本(比如Rocky Linux, AlmaLinux等),那么你可以通过以下步骤使用Docker的官方脚本进行安装:
-
移除旧的Docker版本:
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
-
下载Docker的官方安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh
-
运行下载的脚本:
sudo sh get-docker.sh
-
启动Docker:
sudo systemctl start docker
-
验证Docker是否正确安装,运行一个简单的hello-world镜像:
sudo docker run hello-world
-
如果你想让Docker在每次系统启动时自动运行,你可以执行下面的命令:
sudo systemctl enable docker
这个脚本将自动检测你的操作系统类型和版本,然后下载并安装相应的Docker版本。
一些报错
安装docker(方案5)(不成功)
参考文章:openEuler(华为欧拉)安装docker
netplan
openEuler还不支持netplan,估计修改ip那块都得重新开发了
可以用python platform模块判断操作系统是centos还是ubuntu/debian
安装nmap工具(支持ip_change_service python-nmap库调用)
还是安装openEuler 22.03 LTS吧(?)
参考文章:VMware安装OpenEuler
怎么到这就卡住了?