• [openEuler] openEuler忘记root密码无法进入系统 解决方法
    1. 重启系统,在出现内核选择页面时,按”e”进入grub2配置页面用户名:rootopenEuler grub2默认设置的口令为openEuler#122. 找到linux 开头的行,将ro修改为rw,使内核可以读写硬盘,在这行配置的最后加上init=/bin/sh3. ctrl+x 进入单用户模式,可以看到shell执行界面4. 执行以下命令修改root密码passwd root5. 如果系统的selinux为enable,执行命令创建文件 /.autorelabel touch /.autorelabel6. 执行以下命令重启系统,然后可以使用新密码登录系统exec /sbin/init
  • [问题求助] 请问atlas200dk是否支持安装Euler系统呢?
    请问atlas200dk是否可以安装Euler系统呢?如果可以的话,请问有安装教程吗?
  • openEuler社区开源贡献实践笔记
    第1章开源与开源社区自由软件–开源软件的源头Richard Matthew Stallman,1983年9月推出GNU项目,并发起自由软件运动(free software movement或free/opensource software movement,简称FSM或FOSSM),推广用户有使用、复制、研究、修改和分发软件等权利。同时开创了Copyleft的概念,它使用著作权法的原则来保护使用、修改和分发自由软件的权利,并且是描述这些术语的自由软件许可证的主要作者。最为人所称道的是GPL(最广泛使用的自由软件协议)1985年10月成立自由软件基金会(Free Software Foundation,FSF),致力于推广自由软件。开源软件–概念开放源代码促进会(Open Source Initiative,缩写:OSI)于1998年2月创建,旨在推动开源软件发展,首次正式提出开源软件(open source software)的概念:一种源代码可以任意获取的计算机软件,这种软件的著作权持有人在软件协议的规定之下保留一部分权利并允许用户学习、修改以及以任何目的向任何人分发该软件。开源协议通常符合开放源代码的定义的要求。cid:link_5开源软件-LicenseLicense是游戏规则,是开源软件许可证。在开源软件代码仓/包中,通常在COPYING,LICENSE, NOTICE,COPYRIGHT,AUTHOR,README说明其采用的开源许可证。·开源软件使用遵从义务:按照开源软件软件许可证规定开源软件使用者需要覆行的义务·开源使用声明义务:在产品发布时,随产品附上一份文档Open Source Software Note在该文档中写明产品所有使用的开源软件及其版权和许可证信息,并附上免责声明。·代码对外开源义务:按照开源许可证要求,将一定范围内的代码对外开源,开源范围视具体许可证的要求和使用方式而定。·修改声明义务:做出对修改的开源软件就修改时间,修改的代码以及修改过的文件做出具体的声明。开源软件一License.Apache License 2.0. BSD 3-Clause "New" or "Revised" license· BSD 2-Clause "Simplified" or "FreeBSD" license. GNU General Public License (GPL). GNU Library or "Lesser" General Public License (LGPL). MIT license. Mozilla Public License 2.0. Common Development and Distribution License. Eclipse Public License version 2.0. Mulan Permissive Software License v2 (MulanPSL - 2.0)cid:link_4GPL(Gnu Public License)GPL许可证的核心含义是,允许任何人观看、修改,并散播程序软件里的原始程序码,条件是如果你要发布修改后的版本就要连源代码一起公布。GPL V2:·许可说明·允许各种链接,但被链接的整个产品需要开源·允许修改,但被修改的部分及整个产品均需要开源·通过pipes, sockets的命令行参数与GPL软件进行通讯,不会导致私有软件被传染·仅原则性声明专利应免费许可,无详细规定LGPL V2:·许可说明·允许各种链接,动态链接无开源义务,静态链接需要开放与之链接私有软件的.o文件与makefile·允许修改再链接到私有软件,但是个性增加的功能实现不能依赖私有软件的数据功能·允许不受限制的使用头文件中数值参数,数据结构布局,存取,小宏,内联参数,十行以内的模板·仅原则性声明专利应免费许可,无详细规定木兰宽松许可证(MulanPSL v2)cid:link_12020年2月14日,“木兰宽松许可证”第2版(MulanPSL v2)经过严格审批,正式通过开源促进会(OSI)认证,被批准为国际类别开源许可证(International licenses)。意味着其正式具有国际通用性,可被任一国际开源基金会或开源社区支持采用,并为任一开源项目提供服务。与众多开源协议相比,Mulan PSL在其它协议的基础上进行了以下优化:·许可证内容以中英文双语表述,中英文版本具有同等法律效力,方便更多的开源参与者阅读使用,简化了中国使用者进行法律解释时的复杂度。明确授予用户永久性、全球性、免费的、非独占的、不可撤销的版权和专利许可,并针对目前专利联盟存在的互诉漏洞问题,明确规定禁止“贡献者”或“关联实体”直接或间接地(通过代理、专利被许可人或受让人)进行专利诉讼或其它维权行动,否则终止专利授权。·明确不提供对“贡献者”的商品名称、商标、服务标志等的商标许可,保护“贡献者”的切身利益。·木兰协议经技术专家和法律专家共同修订,在明确合同双方行为约束的前提下尽可能地精简条款、优化表述,降低产生法律纠纷的风险。开源软件–著名开源软件1991年芬兰大学生Linus Torvalds在GNU通用公共许可证下发布了最初是为自己创作的Linux操作系统内核,最初这只是他的一项兴趣爱好。随后,这项兴趣爱好便逐步演变成了拥有最大用户群的操作系统。如今,它不仅是服务器上最常用的操作系统,也广泛应用在嵌入式系统上,如手机、平板电脑、路由器、电视、电子游戏机等。只要遵循GNU通用公共许可证(GPL) ,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。并逐渐发展成为世界上最为活跃的开源基金会Linux Foundation,吸引了来自世界各地的超过500家公司的超过235k开发者参与。第2章openEuler社区概述openEuler社区概述openEuler脱胎于EulerOS,EulerOS是华为公司自2010年起研发使用的服务器操作系统,Linux发行版之一,名字来源于著名数学家莱昂哈德·欧拉(Leonhard Euler);2019年9月,EulerOS正式开源,命名为openEuler。2021年9月25日,openEuler全新发布,升级为统一的面向数字基础设施的开源操作系统,通过一套操作系统架构,南向支持多样性设备,北向覆盖全场景应用,横向对接鸿蒙通过能力共享实现生态互通。2021年11月openEuler正式捐献至开放原子开源基金会数字基础设施开源操作系统Information Technology + Communication Technology + operational Technology操作系统碎片化导致数字基础设施产生大量“软烟囱”︰生态割裂;重复开发;协同繁琐从服务器,到云、到边缘计算,到CT和OT的嵌入式场景,成为面向数字基础设施统一的开源操作系统全栈原子化解耦,支持版本灵活构建、服务自由组合,这样通过一套架构,来灵活支持南向多样性设备,北向全场景应用数字基础设施开源操作系统商业发行版商业支持/服务聚焦稳定和生产价值客户/厂商模式厂商主导的开发社区发行版社区支持/服务创新版、稳定版兼顾开发者模式社区开发者主导的开发openEuler版本生命周期社区版本号按照交付年份月份命名。长期支持版本:发布周期为2年,提供4年社区支持。社区创新版本:每隔6个月发布一个社区创新版本,提供6个月社区支持。高性能、高安全、易运维全场景协同:分布式软总线和KubeEdge,支撑构筑全场景协同领先优势服务器:主流多样性算力覆盖全面,生态完善的数字基础设施底座云原生/边缘:打造降本增效、敏捷易用云原生/边缘基础设施体验嵌入式场景:软、硬实时解决方案,满足工控领域多层次时延诉求高性能:内核架构优化、用户态协议栈和内存分级架构,使能最优性能高安全:机密计算框架和国密全栈.软硬协同持续构建自主可控安全优势易运维:A-OPS智能运维. A-tune智能调优效率倍级提升openEuler开源共建,已经成为国计民生行业首选开源操作系统社区发行、伙伴发行、商业落地、社区运营第3章 参与openEuler社区贡献openEuler社区贡献―加入SIG组行业解决方案/应用、工具链/语言运行、通用中间组件、架构/处理器/内核驱动、云原生基础设施、基础功能特性工具、桌面/图形系统SIG是Special lnterest Group的缩写openEuler社区的开发活动按照不同的siG来组织,以便于更好的管理和改善工作流程。SIG组均是开放的,欢迎任何人来参与。cid:link_2openEuler社区贡献-开发者角色Contributor——项目的贡献者——签署CLA并产生社区贡献Committer——审核其他成员的贡献——SIG的积极贡献者,经验丰富,愿意投入精力参与到审核工作Maintainer——项目Owner——经验丰富,富有责任心、出色的技术能力和管理能力技术委员会(Technical Committee)——负责社区技术决策和技术资源的协调。当期TC委员(含主席)经过扩选,为19人,任期一年。安全委员会(Security Committee)——接收和响应openEuler产品安全问题报告、提供社区安全指导,开展安全治理等活动提升社区产品的安全性,为openEuler用户提供最安全的产品和开发环境。Release Management——社区协调各SIG的Maintainer、QA等各个团队,完成openEuler社区版本的发布工作。openEuler社区贡献–签署CLACLA (Contribution License Agreement)为贡献许可协议。开源社区一般都会要求贡献者签署CLA,只有签署了CLA的贡献者提供的内容才能被接受。CLA签署后贡献者提供的贡献(包括捐款、源代码)将授权给社区使用。openEuler社区贡献-提交你的第一个PR(Pull Request)1.贡献者从社区官方代码库中fork—份代码到自己的库;2.将自己社区库中的代码clone到本地开发环境上;3.修改代码,解决bug或开发新feature;4.提交修改;5.将本地提交push到自己的社区库中;6.向社区官方代码库提交PR;7.待Maintainer review后合入社区官方代码库。openEuler社区贡献-Git基础Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。cid:link_6Git使用教程:cid:link_3cid:link_0第4章 openEuler软件包开发如何构建一个Linux发行版?应用软件开发、软件构建系统、软件管理&软件仓库、发布计划Linux软件管理–源码编译Tarball文件:将软件的所有源码文件以tar打包,然后再压缩(通常是gzip),所以tarball文件一般的扩展名为*.tar.gz或是简写为*tgz。不过,近来由于bzip2与xz的压缩率较佳,因此它对应的后缀名为*.tar.bz2 .*.tar.xz。所以,tarball是一个软件包,将它解压之后,里面的文件通常会有:·源代码文件·检测程序(可能是configure或config)·本软件的简易说明与安装说明(INSTALL或 README)·其中最重要的是 INSTALL或 README文件,通常只要能参考这两个文件,Tarball 软件的安装是很简单的Linux软件管理-RPM/YUM/DNF虽然使用源码进行软件编译可以具有定制化的设置,但是对于Linux distribution 的发布商来说,则有软件管理不易的问题,毕竟不是每个人都会进行源码编译如果能预先在相同的硬件与操作系统上编译好才发布的话,就可以让相同的distribution具有完全一致的软件版本了,再加上简易的安装、移除、管理等机制的话,对于软件管理就容易多了。RPM 与 YUM/DNF就是实现这样的目标Linux软件管理-RPM BasicsFedora,CentOs, openSUSEOracle Linux, openEuler, etc.·简单易用·以软件包为中心:RPM以软件包为单位进行操作,而不是操作单个文件。·软件包的可升级性:—旦软件包使用rpm安装后,可以使用rpm对该软件包进行升级。·解析软件包依赖:RPM软件包中保存了所有该软件包需要的依赖。·查询功能: RPM软件管理器可以用来查询所有本机已通过RPM进行安装的软件包。·验证:RPM可以对RPM软件包进行验证,确保软件包可信name-version-release.architecture.rpmkernel-smp-2.6.32.9-3.x86_64.rpmrootfiles-7.2-1.noarch.rpm$rpmdev-setuptree$tree ~/rpmbuild// home/user/rpmbuild/l – BUILD :RPM软件Build过程中的工作目录,在定位问题时十分重要l – RPMS :生成的二进制RPM软件包的输出目录,会自动创建软件包架构所在的子目录:x86_64、aarch64、noarch等.l—SOURCES:存放用于制作RPM软件包的所有源文件,包括项目源代码、Patch等。Rpmbuild工具会根据Spec指示在本目录下进行检索。l—SPECS:用于存放Specs的目录|-- SRPMS:如果指定生成source rpm,则在此处保存Name pkg的名称,需要与Spec文件名一致Version 软件源代码的版本Release 这个软件包被制作成rpm的次数,从1开始递增Summary 软件包的简要描述License 软件所使用的(开源)协议URL 软件的项目网站,方便用户获得更多内容SourceO~xx 项目源代码压缩包的存储路径耽RL,可以依次指定多个Source,如source0,lsource1, source2 .PatchO~xx 构建过程中需要用到的patch文件,可依次指定多个patch,如patch1, patch2,lpatch3 ...BuildArch 构建架构:x86_64,aarch64, power64等,若采用跨平台语言(e.g.纯python)则可以指定noarchBuildRequires 软件构建过程中所需要的依赖Requires 软件运行过程中所需要的依赖ExcludeArch 软件不能运行的平台Þscription软件包的简要描述%prep执行软件build之前的准备工作,如解压Source文件,打patch等操作%buildBuild软件包的执行步骤%install安装软件包的执行步骤%check检查步骤,主要用于测试%files软件包所产生的文件列表%changelogSpec的修改记录基本格式: rpmbuild [options] [spec文档|tarball包(或者压缩包—以.gz或.xz或.bz2结尾的)|源码包]options有下面的几种选择:1.-bp :只执行spec的%pre段(解开源码包并打补丁,即只做准备)2.-bc :执行spec的%pre和%build 段(准备并编译)3.-bi∶执行spec中%pre,%build与%install(准备,编译并安装)4.-bl∶检查spec中的%file段(查看文件是否齐全)5.-ba :建立源码与二进制包(常用):即编译后做成*.rpm和*.src.rpm6.-bb :只建立二进制包(常用):即编译后做成*.rpm7.-bs :只建立源码包:即只做成*.src.rpm
  • [openEuler] INTEL ICE驱动在openeuler22.03-LTS 环境上编译安装
    intel ice驱动1.9.11 版本在openeuler22.03-LTS  无法直接编译安装,需要按照以下步骤操作环境 openeuler22.03-LTS aarch641.intel官网下载驱动链接:https://downloadmirror.intel.com/738725/ice-1.9.11.tar.gz2.解压软件包tar -xvf ice-1.9.11.tar.gz3.cd ice-1.9.11/src替换这三个文件(文件在附件中)ice_ethtool.c ice_ptp.c 路径 ice-1.9.11/srcauxiliary_bus.h 路径 ice-1.9.11/src/linux4.cd ice-1.9.11/src5.make install6.查看新驱动 modinfo ice|more环境 openeuler22.03-LTS x86_641.intel官网下载驱动链接:https://downloadmirror.intel.com/738725/ice-1.9.11.tar.gz2.解压软件包tar -xvf ice-1.9.11.tar.gz3.cd ice-1.9.11/src替换这两个文件(文件在附件中)ice_ethtool.c  路径 ice-1.9.11/srcauxiliary_bus.h 路径 ice-1.9.11/src/linux4.cd ice-1.9.11/src5.make install6.查看新驱动 modinfo ice|more
  • [技术干货] 在华为鲲鹏云服务器和openEuler系统上安装Docker
    鲲鹏处理器    鲲鹏处理器是华为在2019年1月向业界发布的高性能数据中心处理器。 目的在于满足数据中心的多样性计算和绿色计算需求 ,具有高性能,高带宽,高集成度,高效能四大特点。openEuler    openEuler是华为自主研发的服务器操作系统,能够满足客户从传统IT基础设施到云计算服务的需求。EulerOS对ARM64架构提供全栈支持,打造完善的从芯片到应用的一体化生态系统。Docker    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。在华为鲲鹏云服务器和openEuler系统上安装Docker步骤1.在华为云官网购买鲲鹏云服务器并选择安装openEuler操作系统2.服务器购买完成并创建完成后根据公网IP利用ssh工具远程登录服务器。3.准备工作# 更新镜像源缓存 dnf makecache # 修改chrony时间同步配置 sed -i 's/pool pool.ntp.org iburst/pool ntp.aliyun.com/g' /etc/chrony.conf # 重启chrony服务 systemctl restart chronyd # 查看NTP服务器是否在线 chronyc sources4.创建docker配置目录和配置文件# 创建docker配置目录 mkdir /etc/docker # 创建配置文件 tee /etc/docker/daemon.json <<-'EOF' { "debug": true, "storage-driver": "overlay2", "storage-opts":["overlay2.override_kernel_check=true"], "graph":"/opt/docker", "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://docker.mirrors.ustc.edu.cn", "https://registry.docker-cn.com" ] } EOF5.开始安装# 使用镜像源安装docker dnf install docker # 启动docker systemctl start docker # 开启docker开机自动启动 systemctl enable docker # 查看docker版本信息 docker info安装成功了,尝试多种安装方式后此种方式是最简单的在openEuler上安装docker的方法了。如果中间有报错,建议重新安装openEuler系统。
  • [技术干货] 在华为鲲鹏云服务器和openEuler系统上基于Jexus部署.net环境和aspx网站
    鲲鹏处理器    鲲鹏处理器是华为在2019年1月向业界发布的高性能数据中心处理器。 目的在于满足数据中心的多样性计算和绿色计算需求 ,具有高性能,高带宽,高集成度,高效能四大特点。openEuler    openEuler是华为自主研发的服务器操作系统,能够满足客户从传统IT基础设施到云计算服务的需求。EulerOS对ARM64架构提供全栈支持,打造完善的从芯片到应用的一体化生态系统。Jexus   https://www.jexus.org/    Jexus是Linux平台上具有高度安全性、高度可靠性的高性能WEB服务器和负载均衡网关服务器。除了具备通用WEB服务器所必备的功能外,Jexus还直接支持Asp.Net WEB应用,同时还是Asp.Net Core、Tomcat、Golang/Python Web等HTTP应用程序的一体化宿主。Jexus Web Server 是一款完全由中国人自主研发的的国产服务器软件,支持国产操作系统和国产CPU芯片,真正做到了“安全、可靠、可信、可控”, 具备我国党政机关和重要企事业单位信息化建设所需要的关键品质。    有同学的一些项目之前是用C#基于.net framework环境开发的aspx网站,那如何在不改变源码的情况下迁移到华为云的鲲鹏服务器上呢?今天我们来结合Jexus来实现一下。1.在华为云官网购买鲲鹏云服务器并选择安装openEuler操作系统2.服务器购买完成并创建完成后根据公网IP利用ssh工具远程登录服务器。2.打开Jexus官网,复制ARM64系统 安装jexus独立版的命令:curl https://jexus.org/release/arm64/install.sh|sh4.在ssh工具内粘贴命令并回车开始安装5.安装完成6.将自己的项目部署文件上传到服务器的 /var/www/default 目录下,此目录是Jexus的默认网站目录。我们可以修改网站配置文件 /usr/jexus/siteconf/default 来更改网站目录位置。7.启动Jexus服务8.可以访问网站了。9.这样aspx网站就完美迁移到鲲鹏服务器上了。。
  • [openEuler] 手把手带你玩转 openEuler | 初识 openEuler【转载】
    手把手带你玩转 openEuler | 初识 openEuler为了让更多人更深入认识 openEuler 并积极参与进来,社区将出一些列课程和大家近距离接触,邀请 openEuler 开源的重要参与者、SIG 组 maintainer 等资深专家来进行持续分享。本课程分为三部分,主要是让大家了解 openEuler 是什么、怎么玩、如何参与。 • 第 1 部分:认识 openEuler。了解 openEuler 是一个怎样的平台,包含哪些内容。 • 第 2 部分:openEuler 社区运作。通过本讲您可以了解到 openEuler 社区的治理及运作方式。 • 第 3 部分:openEuler 版本介绍。通过该部分您可以了解到 openEuler 的软件构建和未来的一些规划。1. 认识 openEuler1.1 社区网站:openEuler.org[1]通过社区网站大家可以了解到更多关于 openEuler 的相关内容,并通过文档查看 openEuler 的使用方法。openEuler 是一个开源、免费的 Linux 发行版平台,通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系。同时,openEuler 也是一个创新的平台,鼓励任何人在该平台上提出新想法、开拓新思路、实践新方案。1.2 下载体验 openEuler上面了解了 openEuler 是一个开源免费的平台,对于工程师来说,下载使用才是第一步,那么我们怎么去下载 openEuler 呢?openEuler 社区提供了openEuler 下载地址[2]。可以通过 openEuler 社区导航上的【下载】按钮,下载 openEuler 20.03 LTS 的 ISO 安装包。openEuler 20.03 LTS 版本是面向开放场景的标准发行版,生命周期四年。在 openEuler 使用过程中遇到问题或想提出意见,在社区导航下的【下载】里和文档里可以提出意见反馈,供相关技术人员及时解决问题。1.3 参与 openEuler 社区可以通过 openEuler 导航下的【社区】来参与 openEuler 社区,里面有很多社区相关的子菜单大家可以在官方社区里进行深入的了解。这里重点关注三个子菜单:【社区】里的【开发者】可以指导开发者一步一步参于 openEuler 社区、【SIG(项目组)】可以找到自己感兴趣的项目组、【邮件列表】可以收听参与相关的一些讨论。 • 开发者:参与社区贡献需要签署”贡献者许可协议(CLA)“,要了解社区行为守则。 • SIG(项目组):SIGs 是社区根据领域划分的各个领域的兴趣小组,每一个小组会根据情况维护社区一个或者多个项目。访问此处[3]了解如何申请一个新 SIG。 • 邮件列表:邮件列表是社区交流的很重要的一种方式。  ◊  你可以订阅邮件列表:建议您在订阅前把邮箱的‘答复邮件上的邮件头使用英语’的相关设置打开:1)打开邮箱的选项界面。2)点击【高级】——并找到【国际选项】——勾选‘答复或转发邮件上的邮件头和转发通知使用英语’。  ◊  发送邮件到邮件列表:要将邮件发送到指定的邮件列表,请向上表中列出的邮件地址发送您的电子邮件。这样所有在这个邮件列表中的社区成员都能收到您的电子邮件。  ◊  查看以前的邮件列表:要查看邮件列表中以前发布的电子邮件,请访问以下存档地址(Community[4]、Dev[5]、Announce[6]、Council[7]、Infra[8]、Marketing[9]、User-committee[10]、Build-team[11]、TC[12]、Kernel[13]、A-Tune[14]、iSulad[15]、QA[16]、Sig-ai-bigdata[17]、Crystal-ci[18]、Virt[19])通过社区我们可以做些什么:在我们要做一些事情之前,先说一下 openEuler 本身是在什么地方的?openEuler 本身是放在 gitee.com 上的,并且是开源的,如果大家想要加入使用 openEuler 需要有一个 gitee 账号。下面就是我们要在社区里做些事情了。1)提需求/bug: 在使用/开发过程中遇到的一些问题,发现哪些地方使用不方便,大家都可以可以通过 issue 或者邮件列别提出问题。最简单基本的参与社区的方式:当然是先点一点社区里的内容了,看看有哪些需要优化改进的地方,提出一些有价值有意义的建议。这也是最简单的方式了。在社区中提交问题都是通过 issue 机制来进行的,在提交问题的过程中需要提交人指定提交的对象是谁,也就是你要提交问题给谁。让我们看下 issue 的界面长什么样子?举个栗子:如果你想提交一个社区治理的一个问题,那么你可以在 Community 代码仓库的 issue 中提交问题方框里的 issue 就是我们用来提交 bug/问题的入口,进入到 issue 里我们可以点击【新建 Issue】,进去之后就可以提交 issue 了。当然你可以设置提交的 issue 是什么级别的。我们在提交问题时怎么来接行 issue 的划分呢?总的来说分为以下几类: • 在社区中使用基础设施的过程中,感觉不爽,比如页面布局不够霸气,文字太小等等,可以提交问题到https://gitee.com/openeuler/infrastructure[20] • 如果遇到社区治理方面的问题,比如委员选举机制等问题可以提交到 https://gitee.com/openeuler/community[21] • 具体的软件问题,提交到 https://gitee.com/openeuler/kernel[22] • 其他问题,也就是你知道该提交什么地方的问题,可以提交到 https://gitee.com/openeuler/community-issue[23]如果你想要更详细的了解 issue 提交的流程,下面的链接可以帮助到你:https://gitee.com/openeuler/community/blob/master/zh/contributors/issue-submit.md[24]2)修 bug 解决问题: 这个就需要高层次的社区人员,以一个开发者的身份参与到社区中,在社区里可以自己主动认定一些 bug,来解决相关的问题。在社区里,通常我们希望提出问题并同时解决问题,如果有一个问题,当然最好的情况是同时提供问题解决的 patch 补丁。我们以社区的轻量化容器引擎 iSulad 为例,https://gitee.com/openeuler/iSulad[25],假定我们需要为 iSulad 提交一个 patch 补丁,基本流程如下:第一步:首先要先建立一个自己的分支分支是通过 Fork 创建的,如果大家不了解 Fork,还是先去学习以下 git 吧,对于开发者来说,git 的开发模式是最常用的,也是最基本的,使用 git 是必须的。第二步:修改代码并生成 Pull Request点击 fork 完毕后,目录已经从 openEuler 切换成了自己的账户了,你自己的分支就创建好了。接下来就可以在自己的分支上进行代码的修改了。修改完代码后,点击 Pull Request,就会生成一个 patch 提交代码到原始社区里了,到这里就完成了 patch 的提交了,接下来的时间就是等待 maintainer 审核你的代码了。3)贡献软件包: 可以在 openEuler 代码仓库中的 openeuler 或者 src-openeuler 贡献自己的软件包,当然里面有很多软件包供开发者使用。这样日积月累,openEuler 就能够提供更多更丰富的软件包功能,越多人参与进来,openEuler 就能够成为万能的软件生态系统。4)开发新软件: 大家根据自己爱好和想法,可以开发一些新的软件,贡献到 openeler 下面,经过一定时间的孵化可以进驻到 src-openeuler 里,供大家使用。有两种方式可以将自己的作品发布到 openEuler 社区: • 在其他社区开发,集成到 openEuler 中:假如我们常使用的 github、gitlab、gitee,在上面有一些我们的项目,我们可以通过将软件放到 src-openEuler 的 repo 仓就可以了。这样就可以把我们在其他管理平台里的软件集成到 openEuler 里。 • 在 openEuler 社区中开发,在 openEuler 中集成:我们可以直接在 openEuler 的代码仓库https://gitee.com/openeuler中创建项目,相当于将代码托管到openEuler社区。就像社区里的iSula和A-Tune就是这样的模式。1.4 《社区参与之旅》如果大家想更加详细的了解社区,可以通过两篇比较好的博客去进一步了解。可以介绍如何参与社区的博客地址如下:我的社区参与之旅[26]openEuler 社区参与之旅[27]1.5 openEuler 代码仓库openEuler 的愿景是:通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统 openEuler,推动软硬件生态繁荣发展。openEuler 代码是放在 gitee 上的,大家可以尽情的去下载使用。openEuler 主要包括两个代码仓库:src-openEuler 软件包仓库地址:https://gitee.com/src-openeuler[28]src-openEuler 主要用于存放制作发布件所需的软件包。为 openEuler 的 release 发行版提供生成 rpm 包等构建信息等的地方。openEuler 代码仓库地址:https://gitee.com/openeuler[29]openEuler 主要用于存放源码类项目。openeuler 这个仓是存储所有“原生态”的软件,也就是为原创性的软件提供一个展示的舞台,或者是一个孵化器平台。2. openEuler 社区运作2.1 社区治理:开放、透明openEuler 社区码云地址: https://gitee.com/openeuler/community[30]代码仓 Community 保存了关于 openEuler 社区的所有信息,包括社区治理、社区活动、开发者贡献指南、沟通交流指南等内容。这里包括:openEuler 社区介绍、社区治理组织架构、社区活动、开发者贡献指南。社区治理组织结构我们主要介绍 秘书处、安全委员会、技术委员会、SIG。通过对各自的介绍,大家很明白的知道这些架构组织的作用了。秘书处: 负责社区的筹备、运营规划等支撑社区规范化运作成熟。现阶段,openEuler 社区秘书处的主要职责如下: • 制定社区运营规划 • 制定费用预算,请获得社区创始人批准 • 执行社区创始人筹备社区的工作 • openEuler 社区其他未明确分配到责任人的工作安全委员会: 负责接收和响应 openEuler 安全问题报告、提供社区安全指导。现阶段,openEuler 社区安全委员会的工作职责如下: • 协助漏洞修复:确保及时修复已知漏洞。通过为软件包 Maintainer 们提供补丁帮助,帮助用户系统在成为攻击受害者之前进行漏洞修复,包括提供相关漏洞检测和修复工具。 • 响应安全问题:响应上报的安全问题,跟踪安全问题的处理进展,并遵循安全问题披露策略对安全问题在社区内进行披露和公告。 • 安全编码规则:普及安全编码知识是安全团队的目标。安全团队会努力创建文档或开发工具来帮助开发团队避免软件开发过程中的常见陷阱。安全团队还会尝试回答在开发和使用过程中遇到的任何问题。 • 参与代码审核:安全团队希望能够通过代码审核帮助团队提前发现代码中的漏洞。技术委员会: 负责社区技术决策和技术资源的协调。技术委员会的主要职责如下: • 负责回答理事会提出的技术问题,支撑理事会对战略蓝图的技术发展方向做出判断; • 以远程协作的方式运行,每半年召开一次面对面沟通的正式会议,正式会议间定期召开例行线上公开会议; • 对社区技术路线、接口定义、架构设计、构建发布等进行指导,并逐步构建社区规则; • 协调跨项目合作,对社区跨项目技术问题进行指导,并逐步构建社区规则; • 制定、指导项目孵化、开发、退出流程,支撑社区技术生态健康发展; • 制定、指导软件包接纳、退出 openEuler 的流程,支撑 openEuler 开源版本的可信和可靠; • 接受用户委员会的反馈(需求和问题),牵引社区资源将其落地至项目; • 建立社区认证标准和平台,为社区认证(OS 商业发行版认证、硬件兼容性认证等)提供技术支撑;SIG: 社区兴趣小组,每个小组维护一个或多个项目(对应多个 gitee 仓)2.2 参与社区治理和运作在您遇到任何问题、想参与各委员会/各 SIG 的运作、找到感兴趣的 SIG 都可以通过一下方式进行了解和提问。如果您对社区治理有任何问题或建议,可以发邮件到 maillist:community@openeuler.org提 issue:https://gitee.com/openeuler/community如果您想参与各委员会、各 SIG 的运作,可以通过邮件列表交流及获取信息邮件列表:https://openeuler.org/zh/community/mails.htmlSIGs:https://openeuler.org/zh/sig.html如果您没找到感兴趣或者合适的 SIG,可以申请创建 1 个新 SIGhttps://gitee.com/openeuler/community/tree/master/zh/technical-committee/governance如果您对社区版本发布有任何建议或者需求、想法,可以发邮件到 maillist:dev@openeuler.org标题行首带上[release management] 提 issue:https://gitee.com/openeuler/release-management3. openEuler 版本介绍3.1 Linux Kernel 等上游社区openEuler 跟其他大家比较熟悉的操作系统是一样的,主要是从上游社区来取相关的软件进行一些增强开发、集成和质量保障,然后构建出来的一个社区免费版本。基于上游社区开源软件构建的免费、开源的 Linux 社区发行版,与国内主流 OS 厂商共建共享,形成合力繁荣国内 Linux 操作系统生态下图是 openEuler 与 Linux 发行版的对比,大家可以了解一下。 • openEuler 与 SUSE、Debian、 RedHat 一样基于上游社区开源软件 构建 • openEuler 社区发行 LTS 免费版本, 使能 OSV 发展商业发行版,如麒麟软件、普华、中科软、万里开源等 • openEuler 当前基于内核 4.19 版本3.2 openEuler 基于上游开源软件构建,回馈上游开源社区openEuler 大部分软件来自于上游开源社区,基于上游开源社区我们也做了大量的贡献来回馈上游开源社区。(比如:在 Linux Kernel 社区里,华为的贡献排到了 Top5;在 GCC 社区里华为有 Maintainer 在社区里进行贡献,等等。)推送到上游社区比较困难的代码,经过 openEuler maintainer 的评审,如果确实有价值,也可以将代码先合入到openEuler社区里。但还是鼓励尽可能推送到上游社区,坚持upstream first的原则。3.3 openEuler 版本路标规划openEuler 社区版本命名,发布时间与生命周期管理[31]LTS 版本:2 年发布 1 个,维护 4 年,OSV 厂商可以基于 LTS 版本构建商用发行版;下一个 LTS 版本 22.03创新版本:6 个月发布 1 个,维护 6 个月 • 社区版本按按照交付年份和月份进行版本号命名。例如,openEuler 20.09 于 2020 年 09 月发布 • 社区版本分为长期支持版本和创新版本。 • 长期支持版本:发布间隔周期定为 2 年,提供 4 年社区支持。社区首个 LTS 版本 openEuler 20.03 已于 20 年 3 月正式发布。 • 社区创新版本:LTS 版本之间每隔 6 个月 openEuler 会发布一个社区创新版本,提供 6 个月社区支持。 • 欢迎社区开发者和用户提出宝贵建议,以上规则将根据反馈意见以及社区实施情况不断完善。3.4 openEuler 20.03LTS 版本基本信息20.03LTS 版本基本信息表[32]LTS 版本架构环境支持 ARM 和 X86 版本。如果对 ARM 感兴趣的人员可以通过 openEuler 的【首页】—【鹏城实验室】可以去申请 ARM 的虚拟机资源进行体验。详细的版本信息可查看下表。3.5 openEuler 软件全堆栈的技术优化,充分释放多样化计算平台算力openEuler 关键特性文档说明[33]多核调度技术关键路径 Fs pagecache 免锁重构,极致发挥算力,Nginx HTTP 性能提升 15%集成 KAE 插件软硬协同,助力鲲鹏加速库实现 10%-100%性能提升iSula 轻量级容器具备轻、快、易、灵特点启动时间缩短 35%,内存资源消耗降低 68%,通过 Smart-loading 智能镜像下载技术,显著提升镜像下载速度openEuler Community build of OpenJDK通过 GC 优化,冗余 DMB 指令消除等技术提升性能 20%A-Tune 场景自优化典型场景智能自优化,推理出业务特征,配置最佳的系统参数合,使业务处于最优运行状态,提升系统调优效率 30%4. To Do More通过社区合作,打造创新平台,构建支持多处理器架构、统一和开放的操作系统 openEuler,推动软硬件生态繁荣发展。后面会有更多有意义有挑战性的一些特性在后续的开发维护中会陆陆续续的发布出来,大家尽请关注。社区地址:https://gitee.com/openeuler[34]参考资料[1]openEuler.org: https://openeuler.org/[2]https://openeuler.org/zh/download.html: https://openeuler.org/zh/download.html[3]此处: https://gitee.com/openeuler/community/blob/master/zh/technical-committee/governance/README.md[4]Community: https://mailweb.openeuler.org/hyperkitty/list/community@openeuler.org[5]Dev: https://mailweb.openeuler.org/hyperkitty/list/dev@openeuler.org[6]Announce: https://mailweb.openeuler.org/hyperkitty/list/announce@openeuler.org[7]Council: https://mailweb.openeuler.org/hyperkitty/list/council@openeuler.org[8]Infra: https://mailweb.openeuler.org/hyperkitty/list/infra@openeuler.org[9]Marketing: https://mailweb.openeuler.org/hyperkitty/list/marketing@openeuler.org[10]User-committee: https://mailweb.openeuler.org/hyperkitty/list/user-committee@openeuler.org[11]Build-team: https://mailweb.openeuler.org/hyperkitty/list/buildteam@openeuler.org[12]TC: https://mailweb.openeuler.org/hyperkitty/list/tc@openeuler.org[13]Kernel: https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org[14]A-Tune: https://mailweb.openeuler.org/hyperkitty/list/a-tune@openeuler.org[15]iSulad: https://mailweb.openeuler.org/hyperkitty/list/isulad@openeuler.org[16]QA: https://mailweb.openeuler.org/hyperkitty/list/qa@openeuler.org[17]Sig-ai-bigdata: https://mailweb.openeuler.org/hyperkitty/list/sig-ai-bigdata@openeuler.org[18]Crystal-ci: https://mailweb.openeuler.org/hyperkitty/list/crystal-ci@openeuler.org[19]Virt: https://mailweb.openeuler.org/hyperkitty/list/virt@openeuler.org[20]https://gitee.com/openeuler/infrastructure: https://gitee.com/openeuler/infrastructure[21]https://gitee.com/openeuler/community: https://gitee.com/openeuler/community[22]https://gitee.com/openeuler/kernel: https://gitee.com/openeuler/kernel[23]https://gitee.com/openeuler/community-issue: https://gitee.com/openeuler/community-issue[24]https://gitee.com/openeuler/community/blob/master/zh/contributors/issue-submit.md: https://gitee.com/openeuler/community/blob/master/zh/contributors/issue-submit.md[25]https://gitee.com/openeuler/iSulad: https://gitee.com/openeuler/iSulad[26]我的社区参与之旅: https://openeuler.org/zh/blog/2020/06/10/2020-06-10-my-traval-of-openeuler.html[27]openEuler 社区参与之旅: https://openeuler.org/zh/blog/2020/05/13/2020-5-13-openEuler-Travel.html[28]https://gitee.com/src-openeuler: https://gitee.com/src-openeuler[29]https://gitee.com/openeuler: https://gitee.com/openeuler[30]https://gitee.com/openeuler/community: https://gitee.com/openeuler/community[31]openEuler 社区版本命名,发布时间与生命周期管理: https://gitee.com/openeuler/release-management/blob/master/lifecycle.md[32]20.03LTS 版本基本信息表: https://openeuler.org/zh/docs/20.03_LTS/docs/Releasenotes/release_notes.html[33]openEuler 关键特性文档说明: https://openeuler.org/zh/docs/20.03_LTS/docs/Releasenotes/关键特性.html[34]https://gitee.com/openeuler: https://gitee.com/openeuler文章转载自公众号:openEuler
  • [技术干货] 基于华为鲲鹏云服务器和openEuler系统安装宝塔服务
    宝塔运维面板是国产的安全高效的服务器运维面板,作为linux系统的管理软件很受国内行业人员的好评,今天就基于华为的鲲鹏云服务器和openEuler系统安装宝塔服务。1.在华为云官网购买鲲鹏云服务器并选择安装openEuler操作系统2.服务器购买完成并创建完成后根据公网IP利用ssh工具远程登录服务器。3.打开宝塔面板官方网站,在脚本安装这里复制万能安装脚本if [ -f /usr/bin/curl ];then curl -sSO https://download.bt.cn/install/install_panel.sh;else wget -O install_panel.sh https://download.bt.cn/install/install_panel.sh;fi;bash install_panel.sh ed8484bechttps://www.bt.cn/https://www.bt.cn/new/download.html4.在ssh工具里输入脚本并回车安装,有提示是输入y并回车继续安装。5.万能安装脚本的牵涉到源码编译安装所以时间比较长,等到提示安装完成后复制公网访问地址和账号、密码到浏览器里去访问。6.宝塔管理后台登录成功后需要安装应用软件,这里最好选择"编译安装"模式7.至此宝塔服务已经安装完毕。
  • [技术干货] 欧拉首次亮相全球顶级开源盛会 OSSEU2022
    欧拉带着在对多样性计算时代的展望和畅想,带着开源社区近3年以来取得的进展和成果,首次亮相全球顶级操作系统开源盛会 Open Souce Summit Europe 2022(OSSEU2022)。与全球开发者共同构建安全可持续发展的开源软件未来。2022年9月16日,欧拉开源社区品牌委员会主席梁冰在OSSEU2022发表主题演讲《Unleashing Diversified Computing Power to Innovate Enterprises》,向全球的开发者分享欧拉开源3年以来,在面向全场景,支持多样性计算以及构建开放透明安全可信的软件供应链方面取得的进展。欧拉持续通过技术创新,活跃的社区氛围和规模商用构建一个可持续发展的操作系统未来。这是欧拉首次在国际会议中正式亮相,也是欧拉走向国际化的重要里程碑。Open Souce Summit 是Linux基金会主办,围绕 Linux 开发者的一系列开源会议的总称,是全球最顶级的开源盛会之一,更名前为 Linus Torvalds 创立的 LinuxCon,也是 Linus 本人会亲自出席的社区工作会议。OSSEU2022 是疫情以来首场在欧洲举行的线下大型会议,2000多位来自全球的开发者以及欧洲的用户齐聚一堂,共同探讨开源软件如何为用户创造更多的价值。多样性计算加速企业级用户的创新欧拉是由开放原子开源基金会孵化和运营的开源项目。欧拉开源社区通过开放的社区形式与全球的开发者共同构建一个开放、多元和架构包容的软件生态体系,孵化覆盖全场景、并支持多种处理器架构的开源操作系统, 比如:服务器、云、边缘、嵌入式场景。推动企业数字基础设施软硬件、应用生态繁荣发展。欧拉作为支持多样性计算的操作系统,目前已经支持 ARM、X86、RISC-V、POWER、SW-64、LoongArch等全球主流芯片架构,并且取得了不错的进展,目前软件仓库中有ARM软件包超过25000个,X86软件包超过16000个,RISC-V软件包超过23000个,为成为最佳支持多样性计算的操作系统构建了丰富的软件生态。会议期间,Linus 表达了对ARM架构的喜爱,并表示ARM架构的芯片会在服务器和桌面操作系统方面大有作为。为了最好的支持多样性计算,欧拉开源社区做了很多创新,主要包括以下三点:第一,通过一套构建系统,构建面向服务器、云、边缘和嵌入式场景的操作系统镜像,最终实现面向不同场景的协作部署。第二,欧拉发布构建工具 EulerMaker,支持开发者进行软件包级、函数级和文件级别的定制裁剪,从而按需定制面向不同场景的多样性计算操作系统镜像。第三,欧拉面向开发者发布了一套完整易用的开发工具,例如构建和裁剪工具欧拉Devkit、提供统一接口简化应用开发的欧拉SDK和全流程开发服务作业平台欧拉DevOps,帮助开发者实现面向不同场景,不同设备之间的能力和资源共享,加速企业在多样性计算时代的创新。构建开放透明的软件供应链是开源软件可持续发展的根本在大会开幕式环节,Linux 基金会执行董事 Jim Zemlin 认为开源目前在安全可信方面存在巨大挑战,需要大家携手应对。这与欧拉在开源安全可信上的做法不谋而合。当操作系统出现漏洞时,开发者或用户如何实现分钟级的漏洞感知和漏洞溯源定位?面对这种情况,一个安全可信、公开透明的软件供应链显得尤为重要。欧拉开源操作系统的构建过程,也是开源软件供应链聚合优化的过程。拥有安全可信、公开透明的开源软件供应链是大规模商用操作系统的基础。欧拉从用户的需求出发,回溯梳理软件的依赖关系,理清所有软件包的上游地址、源码和上游对应验证,完成了从开源软件构建、运行依赖关系、上游社区三者之间的闭环管理,确保开源软件的安全和可持续发展。目前,Compass CI 安全类测试上报给上游开源社区的BUG每个月有70个,SBOM(软件物料清单)的功能将在今年实现。新面孔吸引开发者持续关注作为 Open Souce Summit 的新面孔,欧拉吸引了很多用户和伙伴的关注。来自施耐德、西门子、爱立信、博世、巴塞罗那电信、瑞士铁路的开发者和用户对欧拉开源操作系统在多样性计算、开源软件供应链管理、软件生命周期和版本规划等方面表示非常感兴趣,在欧拉展区与工作人员进行交流,并表示在会议结束后,将在开发和生产环境中试用欧拉开源操作系统。
  • [openEuler] yum工具使用(管理软件包)
    管理软件包:搜索软件包使用yum能够方便的进行查询、安装、删除软件包使用如下命令 可以通过软件包的名称、缩写或者描述搜索需要的包文件:yum search 名称这样就解决了想要安装一个软件但是有时候往往不能够准确的知道它的名字问题比如:当我们需要安装一个instant Messenger,但是又不知道到底又那些,这时就可以使用 yum search message 先进行搜索然后再去安装管理软件包:列出软件包我们已经知道使用yum可以使我们很轻松的下载很多依赖和软件,除此之外yum也可以对我们下载的很多软件包进行管理,可以轻松的获取软件包的相关信息如果要列出系统中所有已安装的已经可以使用的RPM软件包,可以使用以下命令:yum list all如果需要列出特定RPM包的信息,将上面的all换成RPM包名即可:yum list [包名]如图:管理软件包:显示RPM包信息要显示一个或者多个RPM包的信息可以使用如下的命令yum info 包名如图所示:管理软件包:安装RPM包要安装一个软件包及其所有未安装的依赖,在root权限下执行如下命令:yum install 名称也可以通过添加软件包名同时安装多个软件包。配置文件/etc/yum/yum.conf添加参数strict=False,运行yum命令参数添加–setopt=strict=0。 在root权限下执行如下命令:yum install 名称 名称 .....--setopt=strict=0管理软件包:下载、删除软件包使用yum下载软件包,可以在root权限下使用如下命令:yum download 名称如果同时需要下载未安装的依赖,只需要加上–resolve:yum download --resolve 名称如果需要卸载软件包及其相关的依赖包,需要在root权限下执行如下命令:yum remove 名称管理软件包组:列出软件包组清单软件包组是一组用于公共功能的软件包,包括系统工具、声音和视频。 安装软件包组的过程中,会获取到一系列的依赖包,从而大大节省了时间。使用yum可以对软件包组进行安装/删除等操作,使相关操作更高效使用summary参数,可以列出系统中所有已安装软件包组、可用的组、可用的环境组额数量:yum groups summaryyum group list 列出软件包组和对应组的id管理软件包组:显示软件包组信息列出包含在一个软件包组中必须安装的包和可选包yum group info glob_expression...例如:管理软件包组:安装、删除软件包组每一个软件包组都有自己的名称以及相应的id,可以使用软件包组名称或它的id进行安装:yum group install 名称yum group install id同样如果要卸载软件包组,可以使用软件包组的名称或者idyum group remove 名称yum group remove id软件包检查、更新升级yum工具可以检查系统中是否有软件包更新。可以通过yum列出需要更新的软件包,并可以选择一次性全部更新或者只对某个包进行更新显示当前系统可用的更新:yum check-update 升级单个软件包,在root权限下执行:yum update package_name更新所有的包和他们的依赖yum update
  • [openEuler] yum工具使用(配置yum)
    HCE—OS—yum工具使用(配置yum)yum工具概述yum全称Yellow dog Updater, Modified,是一个专门为了解决包的依赖关系而存在的软件包管理器。就好像 Windows 系统上可以通过 360 软件管家实现软件的一键安装、升级和卸载,Linux 系统也提供有这样的工具,就是 yum。通过yum源我们可以获取软件包、进行软件包的升级那么我们为什么要使用yum进行软件安装?这是因为当我们安装某个软件的时候往往会伴随着很多的其他组件一起安装,尤其是一些依赖之间的关系往往很难去梳理当我们使用yum工具进行安装就避免了这些麻烦yum工具的主要特点:可以同时配置多个资源库简介的进行文件配置自动解决或删除rpm包时遇到的依赖性问题保持了rpm数据库的一致性这样基于RPM包管理,能够从指定的服务器自动下载RPM包并且自动安装,这样就可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐的下载、安装在使用yum工具前我们需要对yum进行一些配置配置yum:yum配置文件yum的主要配置文件是/etc/yum/yum.conf该文件中主要包含两部分mainrepository【main部分】:定义了全局配置选项,整个yum配置文件只能有一个main。该文件是/etc/yum.conf【repository部分】:定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。另外:在/etc/yum.repos.d目录中保存着一个或者多个repo源的相关文件,它们可以定义不同的repository配置yum:显示当前配置当要显示当前的配置信息时可以使用以下命令:yum config-manager --dump当要显示相应的软件的配置时,首先查询repo id:yum repolist然后执行命令显示对应id的软件源配置,其中repository为查询得到的repo id:yum config-manager --dump repository也可以使用一个全局正则表达式来显示所有匹配部分的配置:yum config-manager --dump glob_experssion配置yum:创建本地软件源仓库要建立一个本地的软件源仓库,可以按照下面的步骤操作:安装createrrepo软件包,在root权限下执行:yum install createrepo将需要的软件包复制到一个目录下,可以直接新建目录,如:/local_repo/执行以下命令创建软件源:createrepo /local_repo这样就可以将本地软件源仓库自动配置完成配置yum:添加启动和禁用软件源添加软件源 - 要定义一个新的软件源仓库,可以在/etc/yum/yum.conf文件中添加repository部分),或者在/etc/yum.repos.d目录下添加.repo文件(如图所示只有一个软件源)。执行下面一段代码其中repository_url为repo源地址:yum config-manager --add-repo repository_url启动软件源 - 要启动软件源,需要在root权限下执行如下命令,其中repository为新增的.repo文件中的repo id (可以通过yum repolist查询):yum config-manager --dump repository
  • [openEuler] Shell脚本概述
    HCE-OS基础操作——Shell脚本概述Shell脚本编写基础知识linux shell是一种特殊的交互式工具,它为用户提供了启动程序、管理文件系统中的文件以及运行在linux系统上的进程的途径。shell的核心是命令行提示符。命令行提示符是shell负责交互的部分。它允许你输入文本命令,然后解析命令,并在内核中执行。常见的shell有bash、zsh、ksh、ash等,由于linux系统默认为bash,因此本文章主要采用bash。使用shell脚本的几点好处:shell脚本可以记录执行命令的过程和逻辑,以便下次的重复执行shell脚本可以批量处理主机shell脚本可以定时处理主机创建和执行Bash shell脚本Bash是linux下默认提供的shell解释器,而且是使用最广泛、与其他shell兼容性最好的解释器创建和执行一个shell程序一般需要以下几个步骤:利用文本编辑器创建脚本内容使用”chmod”命令设置脚本可以执行属性执行脚本命令解释器在Bash shell脚本中第一行以#!开头,通常也称为sharp-bang后面的路劲名称是命令解释器,也就是应用于执行脚本的程序Bash shell脚本将由Bash shell解释,因此他们作为第一行的开头#!/bin/bashecho “hello”执行Bash shell脚本在编写完成shell脚本后不能立即执行,我们需要对其进行权限修改,不然会发生以下报错接下我们需要修改文件权限和所有文件,使它可以变成可执行文件使用chmod命令修改执行权限,并且可以与chown命令组合更改脚本的文件所有权主要命令如下:chmod +x hello.shchmod 755 hello.shsh hello.sh./hello.sh变量的使用shell脚本的编写也需要一些变量的定义,这些变量可以支持我们去编写一些其他更为复杂的shell脚本这些变量可以在内存中存储数据通过变量我们可以轻松访问和修改存储的数据而且相较于其他语言shell变量要简单的多,这里没用的众多的存储类型的限制也能用预定义,shell变量可以边定义的同时边赋值shell变量的种类:1、环境变量临时变量环境变量是永久性的变量,一旦定义其值就不会随脚本的执行结束而消失临时变量则是在shell脚本内部定义的,当脚本执行结束这些值也就消失了变量命名规则变量名称可以由数字、字母(大写和小写)和下划线”_”组成变量的名称不能以数字开头等号=用于为变量分配值,并且不能使用空格将其与变量名称或值进行分隔如以下变量均为有效变量:变量数据类型shell变量中存储的数据类型,常见的有两种:整数类型:zhangsan=40字符串类型:zhangsan=’zhang san’当在为变量分配字符串值得时候,通常用引号将其括起来,如果没有将其括起那么Bash会将空格字符解释为单词分隔符当我们需要处理一些Bash具有特殊意义含义得字符时我们可以使用双引号扩展变量通过在变量名称前面加上$,我们就可以通过变量扩展来重新调用变量的值在程序执行中使用的变量的值的时候,要在变量名面前加上一个$号,这里就会告诉shell,要进行变量值的替换
  • [问题求助] Atlas500-3000固件不再更新
    需要用到Atlas500-3000的sftp功能将文件上传到外接硬盘(/dev/sda1),但是默认情况下sftp只能上传文件到/tmp(位于eMMC),很不方便发现在文档中可以使用modify_path_sftp添加sftp可以操作的路径,但是需要固件版本在21.0.2以上但是华为官网能找到的最新固件只是20.3.0,没有更新的了这个型号的设备固件是不再更新了吗?或者有没有什么别的办法完成我的要求?
  • [openEuler] openEuler 安装 Nvidia 驱动
    Nvidia cuda及驱动安装方式下载驱动wget cid:link_1安装驱动编译解压相关依赖包dnf install -y tar禁用nouveau驱动rmmod nouveauecho ‘blacklist nouveau’ >> /etc/modprobe.d/blacklist.conf安装驱动bash cuda_11.7.1_515.65.01_linux.run 执行 nvidia-smi命令,如果能看到设备信息,表示驱动安装成功。Nvidia 纯驱动安装方式下载驱动wget cid:link_0安装驱动编译解压相关依赖包dnf install -y tar禁用nouveau驱动rmmod nouveauecho ‘blacklist nouveau’ >> /etc/modprobe.d/blacklist.conf安装驱动bash NVIDIA-Linux-x86_64-515.65.01.run出现选择时都选“yes"​​​​​​​​​​​​​​执行 nvidia-smi命令,如果能看到设备信息,表示驱动安装成功。Agenda执行nvidia-smi报错No devices found执行lspci | grep -i nvidia,确认机器中是否有GPU卡,如果没有,需要插上GPU卡才能使用。
  • oec-hardware 工具使用问题解答
    目录1     Content 22     Support 22.1      安装... 22.2      acpi 32.3      cpufreq. 42.4      disk. 62.5      ethernet/infiniband. 72.6      fc. 82.7      raid. 82.8      kdump. 92.9      memory. 102.10    system... 112.11    usb. 132.12    cdrom... 132.13    watchdog. 142.14    gpu/vgpu. 152.15    板卡四元组信息获取... 152.16    测试依赖安装说明... 161 Contentoec-hardware工具是openEuler社区提供的一款硬件兼容性测试工具,oec-hardware提供服务器整机、板卡与openEuler的兼容性验证测试,验证仅限于基本功能验证,不包括性能测试等其它测试。本词条提供 oec-hardware 工具在工具安装或者测试过程中可能遇到的问题解答。2 Support2.1 安装2.1.1 oec-hardware 工具安装oec-hardware 工具已发布到openEuler 官方的 everything 和 update repo源,请使用 dnf 安装软件包。dnf install oec-hardware安装完成后执行oech命令进行测试。详细使用指导请看:cid:link_32.1.2 oec-hardware 工具服务端安装oec-hardware 工具已发布到openEuler 官方的 everything 和 update repo源,请配置相关repo源,然后通过以下步骤进行安装:(1)使用  dnf  获取软件包进行安装。dnf install oec-hardware-server(2)服务端 web 展示页面需要的部分组件系统本身不提供,需要使用  pip3  安装(请自行配置可用 pip 源)。pip3 install Flask Flask-bootstrap uwsgi(3)启动服务。本服务默认使用 8080 端口,同时搭配 nginx(默认端口 80)提供 web 服务,请保证这些端口未被占用。systemctl start oech-server.servicesystemctl start nginx.service(4) 关闭防火墙和 SElinux。systemctl stop firewalldiptables -Fsetenforce 0详细使用指导请看:cid:link_32.1.3 oec-hardware 工具服务端启动失败oech-server依赖的部分软件包需要通过pip3安装,如果执行systemctl start oech-server 启动服务失败,请确认相关服务依赖的安装,请执行以下命令进行安装:pip3 install Flask Flask-bootstrap uwsgi2.1.4 oec-hardware 工具上传测试结果至服务端失败如果oec-hardware工具在测试完成后上传测试结果至服务端失败,出现upload failed的报错,请按照以下步骤进行排查:1. 确认服务端和客户端可以ping通;2. 检查服务端的防火墙和selinux是否正确关闭,请执行以下命令关闭:systemctl stop firewalldiptables -Fsetenforce 03. 检查初始配置信息是否配置正确,初始化时配置的三个参数不能为空,如果配置异常,请执行oech –clean清除配置信息,重新进行配置。2.2 acpi2.2.1 oec-hardware 工具测试acpi 失败,无法找到acpi表acpi是“Advanced Configuration and Power Interface”的缩写,中文意思是“高级配置与电源管理接口”,因此acpi测试是OS与服务器之间硬件信息交互的测试。oec-hardware 测试acpi时如果出现以下报错,无法找到acpi表:Cannot open directory - /sys/firmware/acpi/tables这个报错说明服务器不支持acpi电源管理,请确认服务器的管理方式。以下是一般服务器提供的acpi表:2.3 cpufreq2.3.1 oec-hardware 工具测试cpufreq时无法找到CPU frequency相关文件系统安装完成后,如果 /sys/devices/system/cpu/cpu0-95 目录下缺少cpufreq目录文件,导致用例读取文件中的值失败,用户可以通过以下步骤使系统显示对应目录:1. 修改bios相关配置,将bios中的power policy 值设置为Efficiency 、DEMT值设置为Disabled。2. 查看CONFIG_CPU_FREQ_GOV_COMMON=Y 是否为可设置grep FREQ /boot/config-4.19.90-2016.3.0.0096.oe1.x86_64 |grep GOV |grep -v “is not set”3. bios 下查看Powe Polily Select值是否为performance,bios->advanced->Power Polily Select4. cat scaling_available_governors,如果只有两种模式,需要检测驱动5. 使用modinfo 查询加载的驱动类型cpufreq涉及到的驱动类型有两种:intel_pstate、acpi_cpufreq。如果是intel_pstate,需要按照下面的步骤,在grub中增加intel_pstate=disable1)vi /etc/default/grub 在GRUB_CMDLINE_LINUX 所在行最后添加intel_pstate=disable参数。2)执行grub2-mkconfig -o /boot/efi/EFI/openeuler/grub.cfg (legacy模式下执行grub2-mkconfig -o /boot/grub2/grub.cfg)。3)cat /proc/cmdline 再检查下修改的cmd,然后重启生效。4)cpupower frequency-info 可以查看目前支持5种模式。如果执行以上步骤后,仍然没有cpufreq的相关目录和文件,请升级BIOS固件版本。相关issue链接:cid:link_52.4 disk2.4.1 oec-hardware 工具测试disk信息配置oec-hardware 工具的disk 测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all(all表示测试除系统盘以外的所有硬盘)。vi /usr/share/oech/lib/config/test_config.yaml2.5 ethernet/infiniband2.5.1 oec-hardware 工具测试网卡信息配置oec-hardware 工具的 ethernet/inifiband测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息。vi /usr/share/oech/lib/config/test_config.yaml2.5.2 oec-hardware 工具测试网卡时无法ping通服务端直连网卡使用oec-hardware工具测试网卡时,需要关闭服务端的防火墙、selinux等配置,保证测试端和服务端直连网卡互相可以ping通。 详细使用指导请看:cid:link_32.5.3 oec-hardware 工具测试网卡的rdma模式如果环境中有一张ib卡,当前ib卡使用的是普通网卡模式,可以使用oec-hardware工具的 ethernet 测试项,指定测试rdma 模式,在该模式下会对这张板卡进行ib模式的读写等测试。如果环境中的ib卡使用的infiniband 模式,可以使用oec-hardware工具的 infiniband 测试项对这张卡进行测试。2.6 fc2.6.1 oec-hardware 工具测试FC卡信息配置oec-hardware 工具的fc卡测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all。vi /usr/share/oech/lib/config/test_config.yaml2.7 raid2.7.1 oec-hardware 工具测试raid卡信息配置oec-hardware 工具的raid卡测试项需要用户在配置文件 test_config.yaml 中指定相关测试信息,工具执行测试时会自动读取该文件获取相关信息,默认值为all。vi /usr/share/oech/lib/config/test_config.yaml2.8 kdump2.8.1 oec-hardware工具执行测试kdump测试套失败oec-hardware工具执行kdump 测试失败,首先尝试手动执行以下命令触发kdump:echo c > /proc/sysrq-trigger如果系统无法正常切换到第二内核,重启失败并且服务器控制台上出现以下CPU报错:造成该问题的原因是服务器的BIOS固件版本较低,用户可以通过升级BIOS固件版本解决该问题。2.8.2 oec-hardware 工具测试kdump时无法切换内核如果遇到oec-hardware工具执行测试kdump测试套失败,手动重启系统,查看是否能出现切换内核的界面。如果没有出现切换内核的界面,可以通过dnf update进行更新,更新后重启确认是否能出现切换内核界面,如果出现该界面,可以重新测试kdump。2.8.3 oec-hardware 工具测试kdump测试时无法读取vmcore文件vmcore文件是由kexec-tools提供的,如果相关文件不存在,请安装软件包kexec-tools。2.9 memory2.9.1 oec-hardware 工具测试memory 出现Error eatmem_test failed, please check the space of SWAPoec-hardware 工具测试memory时如果出现以下报错信息: Error eatmem_test failed, please check the space of SWAP这个是因为swap空间不足导致的报错,需要检查当前系统可用的SWAP分区大小,保证可用大小在4G以上。执行以下步骤动态调整swap分区:创建一个磁盘分区sda1fdisk /dev/sda执行mkswap /dev/sda1格式化分区执行swapon /dev/sda1挂载swap分区free -h查看当前swap可用空间2.9.2 oec-hardware 工具测试memory hotplug失败内存热插拔测试时,如果内存被cpu占用,会出现无限刷屏,oec-hardware 工具暂时未解决这种场景下内存的分析处理,因此在1.1.0版本起工具中暂时取消内存热插拔测试,待修复完成后,工具会重新集成测试。如果执行测试出现memory hotplug失败或以下刷屏现象,请挂载openEuler 官方的 everything 和 update repo源,安装最新版本的工具。2.10 System2.10.1 oec-hardware 工具测试system报错OS版本不支持如果oec-hardware执行system测试项失败,日志中出现类似以下的OS版本不支持的报错:Error: openEuler 22.03 LTS is not supported.请查看oec-hardware 工具 支持的OS版本:cid:link_2如果工具明确支持测试的OS版本,但是执行测试出现报错,说明安装的工具版本太低,请配置openEuler官方everything和update repo源后,通过dnf install oec-hardware安装最新版本的工具软件包。工具最新版本请查看:cid:link_6如果工具版本没有说明支持的OS版本,请在工具仓库下提issue反馈或者发邮件至openEuler社区兼容性SIG组邮箱进行确认:oecompatibility@openeuler.org。2.10.2 oec-hardware 工具测试system报错内核被修改oec-hardware 工具会检查内核的完整性,如果内核被重编或者升级, oec-hardware执行system测试项会失败,日志中会出现类似以下内核被修改的报错:[ERROR] Files in kernel-5.10.0-60.18.0.50.oe2203.aarch64 were modified.详细被修改文件请执行以下命令查看:rpm -V --nomtime --nomode --nocontexts kernel如果确认需要修改内核来支持适配整机/硬件,请将相关patch提交至openEuler社区的kernel中,等内核合入patch后重新进行验证。2.10.3 oec-hardware 工具测试system报错SElinux is not enforcingoec-hardware 工具会检查SElinux的状态,如果日志中出现以下报错,说明系统默认的selinux模式是disabled,所以测试时无法临时打开selinux:[ERROR] SElinux is not enforcing, expect is enforcing.修改/etc/selinux/config中配置项SELINUX的值变更SELinux模式,使用enforcing或permissive模式。修改完成后重启系统,使之生效。然后执行oech重新测试system,selinux可以测试通过。详细的selinux配置方式请参考openEuler各个版本中的安全加固指南,以openEuler 22.03LTS为例,可以参考以下文档:cid:link_02.11 usb2.11.1 oec-hardware 工具测试usboec-hardware进行usb测试时,需要人工进行辅助测试,在出现以下提示时插入usb设备,设备类型不限。插入设备后在控制台输入”y”继续测试,在出现以下提示时拔出usb设备。拔出设备后在控制台输入”y”继续测试。2.12 cdrom2.12.1 oec-hardware 工具测试cdromoec-hardware进行cdrom测试时,需要人工进行辅助测试,在出现以下提示时插入cdrom设备 插入设备后在控制台输入”y”继续测试。注意:cdrom测试时会对CD/DVD进行读写测试,会破坏里面的数据,所以测试时要确认设备里的数据已进行备份。2.13 watchdog2.13.1 oec-hardware 工具执行测试watchdog失败oec-hardware工具如果执行watchdog用例失败,请先执行下面两条命令,然后再进行测试:rmmod sbsa_gwdtmodprobe sbsa_gwdt action=1相关issue链接:cid:link_42.13.2 oec-hardware 工具执行测试获取watchdog时间报错oec-hardware工具执行watchdog用例失败,如果出现以下报错,表示获取watchdog时间失败:请执行下面两条命令:cd /usr/share/oech/lib/tests/watchdog./watchdog -s 20如果手动测试通过,请重新测试watchdog。2.14 gpu/vgpu2.14.1 oec-hardware 工具无法显示gpu/vgpu测试项 oec-hardware 工具提供了gpu/vgpu 测试能力,在使用工具测试前,用户需要手动安装gpu/vgpu驱动,配置好硬件环境后再执行 oech 命令,工具会识别并显示 gpu/vgpu 测试项。2.14.2 oec-hardware 工具测试vgpu失败 oec-hardware 工具集成了nvidia vgpu测试能力,nvidia 的gpu和vgpu使用的是不同的驱动,因此如果要测试vgpu,需要单独安装vgpu驱动,配置好环境,并在/root目录下放置nvidia 客户端(虚拟机)可使用的vgpu驱动。2.15 板卡四元组信息获取用户可以通过以下三种方式查看板卡四元组信息:通过iBMC查看使用 lspci -nvv 查看使用 lspci -xs 查看以网卡的四元组信息查询为例:执行ethtool -i 网卡名,查看网卡的bus-info;执行lspci -xs 网卡的bus-info,查看四元组信息;vendorID: 19e5deviceID: a222svID: 19e5ssID: 04cc2.16 测试依赖安装说明oec-hardware 工具存在软件包安装依赖和编译依赖,并且每个测试项会有不同的测试依赖。如果测试环境无法连接外网,可以通过挂载本地repo源或提前下载相关软件包、工具上传至测试环境中,再进行测试。以下文档中提供了oec-hardware 工具的相关依赖软件包列表:cid:link_1
总条数:113 到第
上滑加载中