我成功地在我的服务器上安装了 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 那里得到了一些建议,它们帮助我完成了一半的工作:
下载 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
从 ISO 创建本地存储库。
如何使用 DVD iso 创建通过 Red Hat Enterprise Linux 5/6/7/8 的 apache 分发的本地存储库以进行更新或安装? https://access.redhat.com/solutions/7227
重新安装订阅管理器包。
yum reinstall subscription-manager
注册系统。
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,所以我可以从源代码重新编译。哎哟!
全部无需重新启动。