意外地将我的 RHEL 安装变成了 Oracle 安装。我该如何改回来?

意外地将我的 RHEL 安装变成了 Oracle 安装。我该如何改回来?

我成功地在我的服务器上安装了 Oracle 数据库(如果这样的话,我认为是成功的)。但是,我这样做有一个不良的副作用,就是让 lsb_release 认为我的系统是 Oracle Linux。我无法仅从 RHEL 存储库轻松找到正确的先决条件。因此,我按照以下方式添加了 Oracle 存储库:

https://yum.oracle.com/getting-started.html

/etc/yum.repos.d/ol7-temp.repo

[ol7_latest]
name=Oracle Linux $releasever Latest ($basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL7/latest/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1

并安装了数据库软件。我肯定是无意中做了更多的事情,因为过了一段时间后我才意识到 lsb_release 现在输出:

>lsb_release -a
LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: OracleServer
Description:    Oracle Linux Server release 7.9
Release:    7.9

和以前不一样了:

LSB Version:    :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: RedHatEnterpriseWorkServer
Description:    Red Hat Enterprise Linux Server release 7.9 (Maipo)
Release:    7.9
Codename:   Maipo

我已经禁用了 repo,但我不知道如何修复我的安装。RedHat 有一个convert2rhel实用程序,但它失败了,如下所示:

[11/11/2020 16:48:03] TASK - [Convert: Subscription Manager - Install] **************************
[11/11/2020 16:48:03] CRITICAL - The /usr/share/convert2rhel/subscription-manager directory does not exist or is empty. Using the subscription-manager is not documented yet. Please use the --disable-submgr option. Read more about the tool usage in the article https://access.redhat.com/articles/2360841.

WARNING - Abnormal exit! Performing rollback ...

事实上,订阅管理器不再安装,并且 RHEL7 服务器在 /etc/yum.conf.d 中缺失,因此yum install subscription-manager无法恢复。

# convert2rhel --disable-submgr
[11/11/2020 17:59:28] CRITICAL - Error: --enablerepo is required if --disable-submgr is passed 

No changes were made to the system.

我猜想解决方案的一部分是:

  • 重新创建 /etc/yum.conf.d/redhat.repo(现在丢失)。
  • 重新安装订阅管理器
  • 重新附加订阅并查看 yum update 等的进展情况。

我可以在哪里获取适用于 RHEL7 的 redhat.repo 文件?此 URL 包含适用于 RHEL8 的文件https://access.redhat.com/discussions/4547301 我怎样才能从那里清理系统?

我想避免重新安装,因为这是一个重要的服务器,而且由于 covid 等,使用 DVD 访问真实系统并不方便(以前并不方便)。

如果您能告诉我应该怎么做才能在我的系统上安装 Oracle 数据库软件,而不是我实际做了什么,那么我将获得加分。

答案1

Tl;博士;

  • 恢复 redhat repo 配置
  • yum 降级

我从 RedHat 那里得到了一些建议,它们帮助我完成了一半的工作:

  1. 下载 Red Hat Enterprise Linux 7.9 二进制 DVD 大小 4.22GB

    https://access.redhat.com/downloads/content/69/ver=/rhel---7/7.9/x86_64/product-software

  2. 从 ISO 创建本地存储库。

    如何使用 DVD iso 创建通过 Red Hat Enterprise Linux 5/6/7/8 的 apache 分发的本地存储库以进行更新或安装? https://access.redhat.com/solutions/7227

  3. 重新安装订阅管理器包。

    yum reinstall subscription-manager

  4. 注册系统。

    subscription-manager register
    subscription-manager attach --auto
    subscription-manager repos --enable=rhel-7-server-optional-rpms
    

以上就是我目前为止所取得的成果的一半。我完成了另一半,如下所示:

rpm -qa --queryformat "%{NAME} %{VERSION}-%{RELEASE}.%{ARCH} = %{VENDOR} \n" | grep -i oracle &> badpackages.txt
cat badpackages.txt | awk '{ print $1; }' | grep -v systemd | xargs yum downgrade -y --skip-broken

这只留下 systemd 作为受保护的 Oracle 版本。我使用以下命令将其降级:

cp -p /etc/yum/protected.d/systemd.conf /etc/yum/protected.d/systemd.conf.bak
rm /etc/yum/protected.d/systemd.conf 
yum downgrade systemd systemd-libs systemd-sysv libgudev1

我的系统现已恢复。

这只是故事的一半,我在此过程中犯了一些错误,例如,我无意中通过卸载 libnss 破坏了 yum(使用脚本 rpm -e --nodeps oracle 包,然后 yum 安装它们 - 坏主意!)。这也破坏了 scp。幸运的是,它没有破坏 wget,所以我可以从源代码重新编译。哎哟!

全部无需重新启动。

相关内容