最近我遇到这样一个需求,客户要求在安装了 Oracle VM Server 的机器上安装 gcc 编译器,其实在 Oracle VM 产品中,Server 端就是 hypervisor,不知道客户为什么会提出这样的需求,不过顾客就是上帝嘛,我只好自己在 VirtualBox 实验环境下研究了一番, Oracle VM Server 其实就是定制的 Oracle Linux ,所以实现起来并不难,不过我还是走了一些弯路,比如我开始使用 Oracle Linux 6.2 的安装光盘作为 yum 源,发现很多动态库都出现依赖错误,后来才发现 Oracle VM Server 是基于 Oracle Linux 5 的。Oracle 不推荐不同 Major 版本之间的 Linux 的迁移。所以,后来使用了 Oracle Linux 5.7 的安装光盘,问题迎刃而解了。具体的配置过程如下:

1. 查看系统版本号

[root@vmserver ~]# cat /etc/redhat-release
Oracle VM server release 3.1.1

[root@vmserver ~]# cat /etc/oracle-release
Oracle VM Server release 5.7

2. 挂载光盘

[root@vmserver ~]# mount -o loop /media/Enterprise-R5-U7-Server-x86_64-dvd.iso /oracle/
[root@vmserver ~]#

3. 创建 yum 源配置文件:

[root@vmserver ~]# vi /etc/yum.repos.d/oracle.repo

[Server]
name=Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
baseurl=file:///oracle/Server

4. 安装 gcc编译器:

[root@vmserver ~]# yum clean all
Cleaning up Everything
[root@vmserver ~]# yum install gcc
Server | 1.1 kB 00:00 …
Server/primary | 1.4 MB 00:00 …
Server 3275/3275
Setting up Install Process
Resolving Dependencies
–> Running transaction check
—> Package gcc.x86_64 0:4.1.2-51.el5 set to be updated
–> Processing Dependency: cpp = 4.1.2-51.el5 for package: gcc
–> Processing Dependency: libgcc >= 4.1.2-51.el5 for package: gcc
–> Processing Dependency: libgomp >= 4.1.2-51.el5 for package: gcc
–> Processing Dependency: glibc-devel >= 2.2.90-12 for package: gcc
–> Running transaction check
—> Package cpp.x86_64 0:4.1.2-51.el5 set to be updated
—> Package glibc-devel.x86_64 0:2.5-65 set to be updated
–> Processing Dependency: glibc-headers = 2.5-65 for package: glibc-devel
–> Processing Dependency: glibc = 2.5-65 for package: glibc-devel
–> Processing Dependency: glibc-headers for package: glibc-devel
—> Package libgcc.x86_64 0:4.1.2-51.el5 set to be updated
—> Package libgomp.x86_64 0:4.4.4-13.el5 set to be updated
–> Running transaction check
—> Package glibc.x86_64 0:2.5-65 set to be updated
–> Processing Dependency: glibc-common = 2.5-65 for package: glibc
—> Package glibc-headers.x86_64 0:2.5-65 set to be updated
–> Processing Dependency: kernel-headers >= 2.2.1 for package: glibc-headers
–> Processing Dependency: kernel-headers for package: glibc-headers
–> Running transaction check
—> Package glibc-common.x86_64 0:2.5-65 set to be updated
—> Package kernel-uek-headers.x86_64 0:2.6.32-200.13.1.el5uek set to be updated
–> Finished Dependency Resolution

Dependencies Resolved

===================================================
Package Arch Version Repository Size
===================================================
Installing:
gcc x86_64 4.1.2-51.el5 Server 5.3 M
Installing for dependencies:
cpp x86_64 4.1.2-51.el5 Server 2.9 M
glibc-devel x86_64 2.5-65 Server 2.4 M
glibc-headers x86_64 2.5-65 Server 594 k
kernel-uek-headers x86_64 2.6.32-200.13.1.el5uek Server 724 k
libgomp x86_64 4.4.4-13.el5 Server 69 k
Updating for dependencies:
glibc x86_64 2.5-65 Server 4.8 M
glibc-common x86_64 2.5-65 Server 16 M
libgcc x86_64 4.1.2-51.el5 Server 99 k

Transaction Summary
===================================================
Install 6 Package(s)
Upgrade 3 Package(s)

Total download size: 33 M
Is this ok [y/N]: y
Downloading Packages:
——————————————————————————————-
Total 52 MB/s | 33 MB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Updating : libgcc 1/12
Updating : glibc-common 2/12
Updating : glibc 3/12
Installing : libgomp 4/12
Installing : cpp 5/12
Installing : kernel-uek-headers 6/12
Installing : glibc-headers 7/12
Installing : glibc-devel 8/12
Installing : gcc 9/12
Cleanup : glibc-common 10/12
Cleanup : glibc 11/12
Cleanup : libgcc 12/12

Installed:
gcc.x86_64 0:4.1.2-51.el5

Dependency Installed:
cpp.x86_64 0:4.1.2-51.el5 glibc-devel.x86_64 0:2.5-65 glibc-headers.x86_64 0:2.5-65 kernel-uek-headers.x86_64 0:2.6.32-200.13.1.el5uek libgomp.x86_64 0:4.4.4-13.el5

Dependency Updated:
glibc.x86_64 0:2.5-65 glibc-common.x86_64 0:2.5-65 libgcc.x86_64 0:4.1.2-51.el5

Complete!
[root@vmserver ~]#

相关日志:

Tagged with: