jjzjj

centos7升级国产操作系统openEuler

炒香菇的书呆子 2024-07-14 原文

近年发生的“微软黑屏门”、“微软操作系统停更”、“棱镜门”、“中兴华为”等安全事件,敲响了我国 IT 产业的警钟,建立由我国主导的 IT 产业生态尤为迫切。对此,我国信息技术应用创新行业乘势而起,国产化替代,旨在通过对 IT 软硬件各个环节的重构,建立我国自主可控的IT产业标准和生态,逐步实现各环节的“去美化”。
通过大概近两个月的摸索,通过使用x2openEuler软件,成成功完成Redhat,centos,BClinux等操作系统到openEuler操作系统的升级,包括在内网环境下如何让升级,在公网环境写如何升级等等,几天主要介绍在公网环境下进行centos到openEuler的升级

本次升级是在个人PC环境下使用Vmware虚拟机完成升级任务,Redhat7.3升级BClinux for Euler 21.10

1. 准备工作

  1. 辅助机:centos7.6或者bclinux7.6版本
  2. redhat7.3镜像
  3. Bclinux for euler 21.10镜像
  4. 辅助机和待升级节点在同一网段可以相互联通
  5. x2openEuler升级工具及其依赖包
  6. ssh任一登录软件

2. 升级准备

2.1 修改redhat配置

首先将辅助机和待升级节点配置在同一网段

打开虚拟网络编辑器

选择NAT模式,点击确认。(需要在管理员模式下打开)

此时在待升级节点输入命令查看本机ip

ifconfig -a 

如果没有看到虚拟网卡配置的ip,可以进入/etc/sysconfig/network-scripts查看ens33网卡是否开启,若没有开启,则需要手动配置开启

cd /etc/sysconfig/network-scripts
vi ifcfg-ens33

将onboot=no改成onboot=yes

然后重启网卡

systemctl restart network

再次查看ip

ficonfig -a

可以看到NAT模式下带升级节点ip分配为192.168.17.131

使用辅助机节点去ping该节点,网络正常

2.2. redhat主机挂载redhat7.3镜像

将rehhat7.3镜像放在带升级节点 /mnt下面

redhat系统安装好尽管默认带有yum,但是redhat的更新包只对注册用户有效(收费)。所以需要更换yum源

2.2.1 更换yum包

基本的流程就是:

1.删除redhat7.0系统自带的yum软件包;
2.自行下载所需要的软件包;
3.根据依赖项安装;
4.新建repo配置文件。

1、查看自带的yum软件包

输入

rpm -qa | grep yum

[root@localhost network-scripts]# rpm -qa | grep yum
yum-rhn-plugin-2.0.1-6.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-langpacks-0.4.2-7.el7.noarch
yum-3.4.3-150.el7.noarch
yum-utils-1.1.31-40.el7.noarch

这下面列出来的软件包,要记住一下,后面要根据其来搜索rpm包来安装新版本。比如”yum-utils”、”yum-langpacks”等等。

2、卸载这些安装包

rpm -qa | grep yum | xargs rpm -e --nodeps

3、进入以下任意一个网站下载对应的rpm包
阿里云网络源地址:https://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
网易163网络源地址:http://mirrors.163.com/
CentOS网络源地址:http://centos.ustc.edu.cn/centos/

下载完后上传到服务器分别安装

安装时出现报错

[root@localhost /]# rpm -ivh yum-*
警告:yum-3.4.3-168.el7.centos.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
        rpm >= 0:4.11.3-22 被 yum-3.4.3-168.el7.centos.noarch 需要
        yum-plugin-fastestmirror 被 yum-3.4.3-168.el7.centos.noarch 需要

另外再回去找安装包下载下来:

wget http://mirrors.163.com/centos/7/os/x86_64/Packages/rpm-4.11.3-32.el7.x86_64.rpm
wget http://mirrors.163.com/centos/7/os/x86_64/Packages/python-urlgrabber-3.10-8.el7.noarch.rpm

输入指令更新rpm:

[root@localhost /]# rpm -ivh yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm --nodeps
警告:yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:yum-plugin-fastestmirror-1.1.31-5################################# [100%]
[root@localhost /]# rpm -ivh yum-3.4.3-168.el7.centos.noarch.rpm  --nodeps
警告:yum-3.4.3-168.el7.centos.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:yum-3.4.3-168.el7.centos         ################################# [100%]

再次运行。

rpm -ivh yum-*
[root@localhost /]# rpm -Uvh rpm-4.11.3-45.el7.x86_64.rpm
警告:rpm-4.11.3-45.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
        rpm = 4.11.3-21.el7 被 (已安裝) rpm-libs-4.11.3-21.el7.x86_64 需要
        rpm = 4.11.3-21.el7 被 (已安裝) rpm-python-4.11.3-21.el7.x86_64 需要
[root@localhost /]# rpm -Uvh rpm-4.11.3-45.el7.x86_64.rpm --nodeps
警告:rpm-4.11.3-45.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
正在升级/安装...
   1:rpm-4.11.3-45.el7                ################################# [ 50%]
正在清理/删除...
   2:rpm-4.11.3-21.el7                ################################# [100%]
[root@localhost /]# rpm -ivh yum-*
警告:yum-3.4.3-168.el7.centos.noarch.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中...                          ################################# [100%]
        软件包 yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch 已经安装
        软件包 yum-3.4.3-168.el7.centos.noarch 已经安装

2.2.2 redhat跳过验证

vi /etc/yum/pluginconf.d/subscription-manager.conf

[main]
enabled=0 #将1改成0

2.3 挂载redhat7.3

挂载redhat 7.3

mkdir redhat73
mount -o loop /mnt/rhel-server-7.3-x86_64-dvd.iso /mnt/redhat73/
[root@localhost mnt]# mkdir redhat73
[root@localhost mnt]# mount /mnt/rhel-server-7.3-x86_64-dvd.iso /mnt/r
redhat73/                       rhel-server-7.3-x86_64-dvd.iso
[root@localhost mnt]# mount -o loop /mnt/rhel-server-7.3-x86_64-dvd.iso /mnt/redhat73/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@localhost mnt]# 

进入下面目录

cd /etc/yum.repos.d
 vi redhat.repo

输入下面内容到

[redhat73]

name=redhat73

baseurl=file:///mnt/redhat73/
enabled=1
gpgcheck=0

保存好后退出,执行下面命令

yum clean all
yum makecache
yum repolist

2.5 辅助机安装配置

2.5.1 x2openEuler安装

x2openEuler下载地址:https://www.openeuler.org/zh/migration/download/

版本依赖下载:https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/contrib/x2openEuler/noarch/Packages/

下载好后上传到辅助机,分别安装

yum install -y x2openEuler-*

关闭防火墙和selinux

systemctl stop firewalld
set selinux 0

2.5.1 x2openEuler启动

打开目录并启动x2openEuler

[root@localhost x2openEuler-upgrade]# cd /usr/local/x2openEuler/portal/service
[root@localhost service]# bash service_start.sh 
Start Nginx service and Gunicorn service
Ip address list:
sequence_number         ip_address              device
[1]                     192.168.220.132         ens33
Enter the sequence number of listed ip as web server ip(default: 1): 
Set the web server IP address 192.168.220.132
Please enter HTTPS port(default: 18082):
The HTTPS port 18082 is valid.  Set the HTTPS port to 18082 (y/n default: y):
Set the HTTPS port 18082
Please enter gunicorn port(default: 18080):
The GUNICORN port 18080 is valid.  Set the GUNICORN port to 18080 (y/n default: y):

2.5.2 辅助机挂载Bclinux for Euler 21.10

安装httpd并启动httpd

yum install -y httpd
systemctl start httpd
systemctl stop firewalld
[root@localhost ~]# yum install -y httpd
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
 * base: mirrors.nju.edu.cn
 * extras: mirrors.nju.edu.cn
 * updates: mirrors.163.com
base                                                                                | 3.6 kB  00:00:00     
extras                                                                              | 2.9 kB  00:00:00     
updates                                                                             | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                       | 153 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                   | 249 kB  00:00:00     
(3/4): base/7/x86_64/primary_db                                                     | 6.1 MB  00:00:00     
(4/4): updates/7/x86_64/primary_db                                                  |  20 MB  00:00:26     
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-98.el7.centos.6 将被 安装
--> 正在处理依赖关系 httpd-tools = 2.4.6-98.el7.centos.6,它被软件包 httpd-2.4.6-98.el7.centos.6.x86_64 需要
--> 正在处理依赖关系 /etc/mime.types,它被软件包 httpd-2.4.6-98.el7.centos.6.x86_64 需要
--> 正在处理依赖关系 libaprutil-1.so.0()(64bit),它被软件包 httpd-2.4.6-98.el7.centos.6.x86_64 需要
--> 正在处理依赖关系 libapr-1.so.0()(64bit),它被软件包 httpd-2.4.6-98.el7.centos.6.x86_64 需要
--> 正在检查事务
---> 软件包 apr.x86_64.0.1.4.8-7.el7 将被 安装
---> 软件包 apr-util.x86_64.0.1.5.2-6.el7 将被 安装
---> 软件包 httpd-tools.x86_64.0.2.4.6-98.el7.centos.6 将被 安装
---> 软件包 mailcap.noarch.0.2.1.41-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

===========================================================================================================
 Package                 架构               版本                                 源                   大小
===========================================================================================================
正在安装:
 httpd                   x86_64             2.4.6-98.el7.centos.6                updates             2.7 M
为依赖而安装:
 apr                     x86_64             1.4.8-7.el7                          base                104 k
 apr-util                x86_64             1.5.2-6.el7                          base                 92 k
 httpd-tools             x86_64             2.4.6-98.el7.centos.6                updates              94 k
 mailcap                 noarch             2.1.41-2.el7                         base                 31 k

事务概要
===========================================================================================================
安装  1 软件包 (+4 依赖软件包)

总下载量:3.0 M
安装大小:10 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/base/packages/apr-1.4.8-7.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
apr-1.4.8-7.el7.x86_64.rpm 的公钥尚未安装
(1/5): apr-1.4.8-7.el7.x86_64.rpm                                                   | 104 kB  00:00:00     
(2/5): apr-util-1.5.2-6.el7.x86_64.rpm                                              |  92 kB  00:00:00     
(3/5): mailcap-2.1.41-2.el7.noarch.rpm                                              |  31 kB  00:00:00     
httpd-tools-2.4.6-98.el7.centos.6.x86_64.rpm 的公钥尚未安装
(4/5): httpd-tools-2.4.6-98.el7.centos.6.x86_64.rpm                                 |  94 kB  00:00:00     
(5/5): httpd-2.4.6-98.el7.centos.6.x86_64.rpm                                       | 2.7 MB  00:00:00     
-----------------------------------------------------------------------------------------------------------
总计                                                                       7.6 MB/s | 3.0 MB  00:00:00     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
 用户ID     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 指纹       : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 软件包     : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
 来自       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : apr-1.4.8-7.el7.x86_64                                                                 1/5 
  正在安装    : apr-util-1.5.2-6.el7.x86_64                                                            2/5 
  正在安装    : httpd-tools-2.4.6-98.el7.centos.6.x86_64                                               3/5 
  正在安装    : mailcap-2.1.41-2.el7.noarch                                                            4/5 
  正在安装    : httpd-2.4.6-98.el7.centos.6.x86_64                                                     5/5 
  验证中      : httpd-tools-2.4.6-98.el7.centos.6.x86_64                                               1/5 
  验证中      : mailcap-2.1.41-2.el7.noarch                                                            2/5 
  验证中      : apr-1.4.8-7.el7.x86_64                                                                 3/5 
  验证中      : httpd-2.4.6-98.el7.centos.6.x86_64                                                     4/5 
  验证中      : apr-util-1.5.2-6.el7.x86_64                                                            5/5 

已安装:
  httpd.x86_64 0:2.4.6-98.el7.centos.6                                                                     

作为依赖被安装:
  apr.x86_64 0:1.4.8-7.el7       apr-util.x86_64 0:1.5.2-6.el7  httpd-tools.x86_64 0:2.4.6-98.el7.centos.6 
  mailcap.noarch 0:2.1.41-2.el7 

完毕!
[root@localhost ~]# systemctl start httpd

#启动httpd后,打开下面目录,新建euler2110
cd /var/www/html
mkdir bceuler2110
# 将bclinux for Euler 21.10上传到/mnt下面
将镜像挂载到/var/www/html/bceuler2110
mount -o loop /mnt/BCLinux-for-Euler-21.10-everything-x86_64.iso /var/www/html/bceuler2110/

[root@localhost html]# mount -o loop /mnt/BCLinux-for-Euler-21.10-everything-x86_64.iso /var/www/html/bceuler2110/
mount: /dev/loop0 写保护,将以只读方式挂载

输入下面命令

yum clean all
yum makecache

3. 操作系统升级

在x2openEuler启动成功后,打开启动的web端

https://192.168.220.132:18082/x2openEuler/#/login

设置初始密码

登录

新建任务–系统升级

按照要求填写信息

源操作系统版本选择对应的centos即可

repo源选择新建

输入下面内容

[local]

name=local

baseurl=http://192.168.220.132/bceuler2110/
enabled=1
gpgcheck=0

配置完成后点击确认

点击确认进行连通性测试

测试通过,开始升级前检查

升级前检查通过,开始升级

此时升级报错,需要进入待升级节点查看报错详情

cd /opt/x2openEuler-upgrade
# 进入目录手动安装x2openEuler-upgrade-1.1.3-33.x86_64.rpm
yum install -y x2openEuler-upgrade-1.1.3-33.x86_64.rpm

报错如下

错误:软件包:x2openEuler-upgrade-1.1.3-33.x86_64 (/x2openEuler-upgrade-1.1.3-33.x86_64)
          需要:rsync >= 3.1.0
          已安装: rsync-3.0.9-17.el7.x86_64 (@anaconda/7.3)
              rsync = 3.0.9-17.el7
 您可以尝试添加 --skip-broken 选项来解决该问题
 您可以尝试执行:rpm -Va --nofiles --nodigest

这时需要手动将yum源更改为bclinux for euler21.10的yum源

cd /etc/yum.repos.d/
vi redhat73.repo

将内容改为如下

[redhat73]

name=redhat73

baseurl=http://192.168.220.132/bceuler2110/
#baseurl=file:///mnt/redhat73/
enabled=1
gpgcheck=0

yum clean all
yum makecache

 cd /opt/x2openEuler-upgrade/
 yum install -y x2openEuler-upgrade-1.1.3-33.x86_64.rpm

x2openEuler-upgrade-1.1.3-33.x86_64.rpm安装成功

将yum源再改回redhat的yum源

[root@localhost x2openEuler-upgrade]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# vi redhat73.repo 

[redhat73]

name=redhat73

#baseurl=http://192.168.220.132/bceuler2110/
baseurl=file:///mnt/redhat73/
enabled=1
gpgcheck=0

yum clean all
yum makecache

回到辅助机web界面,选择回退

再次选择开始升级

再次报错

进入控制台手动安装yum-utils

可能是redhat回退重启导致redhat镜像挂载失败,重新挂载

[root@localhost yum.repos.d]# mount  -o loop  /mnt/rhel-server-7.3-x86_64-dvd.iso /mnt/redhat73/
mount: /dev/loop0 写保护,将以只读方式挂载
[root@localhost yum.repos.d]# yum makecache 
已加载插件:langpacks, product-id, search-disabled-repos
redhat73                                                                            | 4.1 kB  00:00:00     
(1/4): redhat73/group_gz                                                            | 136 kB  00:00:00     
(2/4): redhat73/filelists_db                                                        | 3.3 MB  00:00:00     
(3/4): redhat73/primary_db                                                          | 3.9 MB  00:00:00     
(4/4): redhat73/other_db                                                            | 1.5 MB  00:00:00     
元数据缓存已建立

再次升级

升级完成

重启节点,清理日志文件

去面板查看升级信息

cat /etc/os-release
cat /etc/redhat-release
rpm -qa |grep kernel
[root@localhost ~]# cat /etc/os-release 
NAME="BigCloud Enterprise Linux"
VERSION="21.10 (LTS-SP2)"
ID="bclinux"
VERSION_ID="21.10"
PRETTY_NAME="BigCloud Enterprise Linux For Euler 21.10 LTS"
ANSI_COLOR="0;31"

[root@localhost ~]# cat /etc/redhat-release
BigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)
[root@localhost ~]# rpm -qa |grep kernel
kernel-4.19.90-2211.4.0.0177.oe1.bclinux.x86_64
[root@localhost ~]# 

升级成功。

有关centos7升级国产操作系统openEuler的更多相关文章

  1. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  2. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  5. ruby - 在不使用 RVM 的情况下在 Mac 上卸载和升级 Ruby - 2

    我最近决定从我的系统中卸载RVM。在thispage提出的一些论点说服我:实际上,我的决定是,我根本不想担心Ruby的多个版本。我只想使用1.9.2-p290版本而不用担心其他任何事情。但是,当我在我的Mac上运行ruby--version时,它告诉我我的版本是1.8.7。我四处寻找如何简单地从我的Mac上卸载这个Ruby,但奇怪的是我没有找到任何东西。似乎唯一想卸载Ruby的人运行linux,而使用Mac的每个人都推荐RVM。如何从我的Mac上卸载Ruby1.8.7?我想升级到1.9.2-p290版本,并且我希望我的系统上只有一个版本。 最佳答案

  6. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  7. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  8. kvm虚拟机安装centos7基于ubuntu20.04系统 - 2

    需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc

  9. ruby - 如何使用 Selenium Webdriver 根据 div 的内容执行操作? - 2

    我有一个使用SeleniumWebdriver和Nokogiri的Ruby应用程序。我想选择一个类,然后对于那个类对应的每个div,我想根据div的内容执行一个Action。例如,我正在解析以下页面:https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=puppies这是一个搜索结果页面,我正在寻找描述中包含“Adoption”一词的第一个结果。因此机器人应该寻找带有className:"result"的div,对于每个检查它的.descriptiondiv是否包含单词“adoption

  10. ruby-on-rails - 如何处理 Grape 中特定操作的过滤器之前? - 2

    我正在我的Rails项目中安装Grape以构建RESTfulAPI。现在一些端点的操作需要身份验证,而另一些则不需要身份验证。例如,我有users端点,看起来像这样:moduleBackendmoduleV1classUsers现在如您所见,除了password/forget之外的所有操作都需要用户登录/验证。创建一个新的端点也没有意义,比如passwords并且只是删除password/forget从逻辑上讲,这个端点应该与用户资源。问题是Grapebefore过滤器没有像except,only这样的选项,我可以在其中说对某些操作应用过滤器。您通常如何干净利落地处理这种情况?

随机推荐