linux怎么安装oracle

linux怎么安装oracle,第1张

在linux下安装oracle数据库步骤:

1、下载oracle安装文件

一、检查必要条件

1.1、检查内存及交换分区

Oracle要求2GB以上的内存

#查看内存大小

grep MemTotal /proc/meminfo

#查看交换区大小

grep SwapTotal /proc/meminfo

#也可以使用下面的命令查看内存大小

free -m1234567

交换分区要求

内存大小

交换分区要求

1GB~2GB 内存的1.5倍

2GB~16GB 和内存大小相等

大于16GB 16GB

1.2、确认操作系统位数

[root@FSWWOA /]# uname -m

x86_6412

x86_64:表示用的是Intel的处理器,并且操作系统是64位的

i386:表示是32位

1.3、检查硬盘空间

#查看临时目录空间

[root@FSWWOA /]# df -h /tmp

#查看硬盘总空间

[root@FSWWOA /]# df -h1234

Oracle安装是要求/tmp目录要有至少1GB的空间。

以下是Oracle各个版本安装是所需的空间

版本

所需空间

Enterprise Edition(企业版) 4.7GB

Standard Edition(标准版) 4.6GB

二、安装必要软件

首先需要检查系统版本,然后从Oracle官方文档中找到对应的Linux版本。

[root@FSWWOA /]# cat /proc/version

Linux version 2.6.32-71.el6.x86_64 (root@CentOS6064.localdomain) (gcc version 4.4.4 20110726 (Red Hat 4.4.4-13) (GCC) ) #1 SMP Wed Feb 29 15:21:16 CST 201212

Oracle官方文档中对应的版本如下

On Red Hat Enterprise Linux 6

2.6.32-71.el6.x86_64 or later

然后根据Linux版本找到其必要安装的软件,如下

The following or later version of packages for Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4 must be installed:

binutils-2.20.51.0.2-5.11.el6 (x86_64)

compat-libcap1-1.10-1 (x86_64)

compat-libstdc++-33-3.2.3-69.el6 (x86_64)

compat-libstdc++-33-3.2.3-69.el6.i686

gcc-4.4.4-13.el6 (x86_64)

gcc-c++-4.4.4-13.el6 (x86_64)

glibc-2.12-1.7.el6 (i686)

glibc-2.12-1.7.el6 (x86_64)

glibc-devel-2.12-1.7.el6 (x86_64)

glibc-devel-2.12-1.7.el6.i686

ksh

libgcc-4.4.4-13.el6 (i686)

libgcc-4.4.4-13.el6 (x86_64)

libstdc++-4.4.4-13.el6 (x86_64)

libstdc++-4.4.4-13.el6.i686

libstdc++-devel-4.4.4-13.el6 (x86_64)

libstdc++-devel-4.4.4-13.el6.i686

libaio-0.3.107-10.el6 (x86_64)

libaio-0.3.107-10.el6.i686

libaio-devel-0.3.107-10.el6 (x86_64)

libaio-devel-0.3.107-10.el6.i686

make-3.81-19.el6

sysstat-9.0.4-11.el6 (x86_64)1234567891011121314151617181920212223

检查系统是否安装以上的软件,如果没有安装则安装这些软件

yum install -y binutils.x86_64 binutils-devel.x86_64

yum install -y compat-libcap1.x86_64

yum install -y compat-libstdc++-33.x86_64

yum install -y compat-libstdc++-33.i386

yum install -y gcc.x86_64 gcc-c++.x86_64

yum install -y glibc.x86_64 glibc.i686 glibc-devel.x86_64 glibc-devel.i386

yum install -y ksh.x86_64

yum install -y libgcc.i386 libgcc.x86_64

yum install -y libstdc++.i386 libstdc++.x86_64 libstdc++-devel.i386 libstdc++-devel.x86_64

yum install -y libaio libaio-devel

yum install -y make.x86_64

yum install -y sysstat.x86_64

yum install -y pdksh.x86_64

/*-------------------------------------*/

yum install -y unixODBC.x86_64 unixODBC.i386 unixODBC-devel.i386 unixODBC-devel.x86_64123456789101112131415

三、创建Oracle用户和组

[root@FSWWOA /]# groupadd dba

[root@FSWWOA /]# groupadd oinstall

#添加用户

[root@FSWWOA /]# useradd -g oinstall -G dba oracle

#设置Oracle的密码

[root@FSWWOA /]# pwd oracle oracle

#这里密码使用:oracle12345678

四、修改系统参数

4.1、修改用户的SHELL的限制

修改/etc/security/limits.conf文件

vi /etc/security/limits.conf1

然后在文件中添加如下内容

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 655361234

4.2、修改/etc/pam.d/login 文件

vi /etc/pam.d/login1

然后在文件中添加如下内容

session required /lib/security/pam_limits.so

session required pam_limits.so12

4.3、修改系统核心参数

修改/etc/sysctl.conf文件vi /etc/sysctl.conf,然后在文件中加入

fs.aio-max-nr = 1048576

fs.file-max = 6815744

kernel.shmall = 2097152

kernel.shmmax = 536870912

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 10485761234567891011

执行sysctl -p是配置立刻生效。使用sysctl -a查看所有系统参数。

五、创建Oracle安装目录

5.1创建Oracle安装目录

cd /u01

mkdir -p app/oracle/product/11.2.0/dbhome_1

mkdir app/oradata123

5.2修改目录所有者

[root@FSWWOA u01]# chown -R oracle:oinstall app

[root@FSWWOA u01]# ll

总用量 20

drwxr-xr-x. 4 oracle oinstall 4096 11月 25 08:46 app

drwx------. 2 root root 16384 11月 24 14:29 lost+found12345

六、修改系统环境变量

使用vi ~/.bash_profile打开环境变量配置文件。加入如下内容

export ORACLE_BASE=/u01/app

export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

export NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 123456

然后使用source ~/.bash_profile是配置立即生效。使用env | grep ORACLE可以查看环境变量配置。

七、安装Oracle

7.1解压Oracle安装文件

将Oracle拷贝至Linux服务器上,然后解压

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip12

如果使用光盘安装,则使用mount -t iso9660 /dev/dvd /mnt/dvd挂载光盘

7.2设置安装环境

如果Linux系统字符编码是中文的,在安装过程中Oracle安装界面会全部乱码。可使用export LANG=en_US,将会话的字符集改为英文字符集,然后再安装就不会出现乱码。

另外,Oracle安装时需要图形界面的支持。

剩余部分见PDF文档(后续图片太多不再一一上传),剩余部分如下:

7.3开始安装Oracle

八、测试安装结果

九、修改防火墙配置,将Oracle端口添加到例外

十、将Oracle设置自启动

十一、设置Oracle用户名密码不区分大小写

在使用linux的centos7.4遇到的各种坑,其中一个项目采用四层架构,配置层,平台层,逻辑服务器管理层和集体逻辑服务器层的,一个整体的 游戏 项目,其中,作为整个项目负责人和架构打架着,项目运行一年来,遇到了各种各样怪异的问题。其中就是tcp缓存区堵塞的问题,刚开始时候,以为是代码问题,花了半年的时间来排除,验证,把能想到的问题都做了一个遍,问题还是存在。最后应该几个调优和验证。附上算比较稳定centos7.4的内核调优详细参数如下:

内核配置文件:/etc/sysctl.conf

net.ipv4.tcp_mem = 768432 2097152 15242880

net.ipv4.tcp_wmem = 40960 163840 4194304

net.ipv4.tcp_rmem = 40960 873800 4194304

#net.core.somaxconn=6553600

net.core.wmem_default = 8388608

net.core.rmem_default = 8388608

net.core.rmem_max = 524288000

net.core.wmem_max = 524288000

net.ipv4.tcp_syncookies=1

net.ipv4.tcp_max_syn_backlog=81920

net.ipv4.tcp_timestamps=0

# 参数的值决定了内核放弃链接之前发送SYN+ACK包的数量,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_synack_retries,默认是2

net.ipv4.tcp_synack_retries=3

# 表示内核放弃建立链接之前发送SYN包的数量,该参数对应系统路径为:/proc/sys/net/ipv4/tcp_syn_retries,默认是6

net.ipv4.tcp_syn_retries=3

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 300

net.ipv4.ip_local_port_range = 20000 65000

net.ipv4.tcp_max_tw_buckets = 6000

net.ipv4.route.max_size = 5242880

kernel.sem=250 65536 100 2048

kernel.msgmnb = 4203520

kernel.msgmni = 64

kernel.msgmax = 65535

#设置最大内存共享段大小bytes

kernel.shmmax = 68719476736

kernel.shmall = 4294967296

kernel.shmmni = 655360

net.ipv4.tcp_tw_reuse=1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_window_scaling = 1

net.ipv4.tcp_no_metrics_save=1

# 开启SYN洪水攻击保护

kernel.core_uses_pid = 1

net.ipv4.conf.lo.arp_announce=2

net.ipv4.tcp_sack = 1

kernel.randomize_va_space=1

net.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_max = 25000000

net.netfilter.nf_conntrack_tcp_timeout_established = 180

#net.ipv4.netfilter.ip_conntrack_max=1000000

net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60

net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

#避免放大攻击

net.ipv4.icmp_echo_ignore_broadcasts=1

#关闭ipv6

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

# 开启恶意icmp错误消息保护

net.ipv4.icmp_ignore_bogus_error_responses = 1

#关闭路由转发

net.ipv4.ip_forward = 0

net.ipv4.conf.all.send_redirects = 0

net.ipv4.conf.default.send_redirects = 0

#开启反向路径过滤

net.ipv4.conf.all.rp_filter = 1

net.ipv4.conf.default.rp_filter = 1

#处理无源路由的包

net.ipv4.conf.all.accept_source_route = 0

net.ipv4.conf.default.accept_source_route = 0

#关闭sysrq功能

kernel.sysrq = 0

#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目

net.core.netdev_max_backlog = 262144

#限制仅仅是为了防止简单的DoS 攻击

net.ipv4.tcp_max_orphans = 3276800

# 确保无人能修改路由表

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

net.ipv4.conf.all.secure_redirects = 0

net.ipv4.conf.default.secure_redirects = 0

vm.swappiness = 0

#决定检查过期多久邻居条目

net.ipv4.neigh.default.gc_stale_time=120

fs.file-max = 40000500

fs.nr_open = 40000500

kernel.perf_cpu_time_max_percent=60

kernel.perf_event_max_sample_rate=6250

kernel.sched_migration_cost_ns=5000000

net.core.optmem_max= 25165824

vm.max_map_count=262144

net.core.somaxconn = 65535

#使用arp_announce / arp_ignore解决ARP映射问题

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.all.arp_announce=2

net.ipv4.conf.lo.arp_announce=2

环境和配置

测试环境有一个 IBM Flex System® 组成,该系统有多个 IBM Flex System x240 计算节点和两个基于 IBM POWER7 处理器的节点(一个 Flex System p260 和一个 Flex System p460)。出于本项目的目的,我使用一个 Flex system x240 计算节点来交叉编译 Apache httpd 和 PostgreSQL。构建二进制程序后,我将它们转移到 Flex System p460 计算节点。图 7 显示了 IBM Flex System 测试环境的布局图。

图 7. IBM Flex System 测试环境

以下是我的系统配置、操作系统级别和其他与系统设置相关的信息。

Flex System x240 计算节点

用于交叉编译二进制程序的 Intel 节点仅需要足够的处理能力和内存,以便能够构建 Power 二进制程序。配置如下:

基于内核的虚拟机 (KVM) 管理程序 Red Hat 6.5

32 个处理器

64 GB 内存

IBM Storwize® V7000 存取区域网络 (SAN) 连接磁盘

KVM Guest 系统

Red Hat Enterprise Linux 6.5

4 个处理器

16 GB 内存

一个 virtio 磁盘:100 GB

一个配置为 br0 的虚拟网络接口卡 (NIC)

所有其他 KVM Guest 系统都已关闭,以消除破坏环境的任何可能性。

Flex System p440 计算节点

Flex System p440 计算节点包含多个逻辑分区 (LPAR),其中一个配置为测试服务器。PowerLinux 服务器配置如下:

IBM PowerVM® 来宾

Red Hat Enterprise Linux 6.5

8 个处理器(专用)

32 GB 内存

Storwize V7000 SAN 连接磁盘 (50 GB)

通过虚拟 I/O 服务器 (VIOS) 共享的以太网适配器

LPAR 配置

最小内存:256 MB

目标内存:32 GB

最大内存:64 GB

最少处理器数:8

目标处理器数:8

最大处理器数:32

处理模式:专用

专用内存

虚拟以太网适配器(通过 VIOS 建立)

适配器 ID:2

VLAN ID:1

需要此适配器来激活虚拟服务器:已选择

以下是我运行的其他一些命令:

# ppc64_cpu --frequency

min:3.56 GHz (cpu 28)

max:3.56 GHz (cpu 4)

avg:3.56 GHz

# ppc64_cpu --cores-present

Number of cores present = 8

# sysctl.conf

kernel.sem = 250 32000 3212288

使用 toolchain 构建应用程序

通常,构建开源发行版的过程是一个迭代过程。如果您很幸运的话,该过程可能已构建完成。不幸的是,因为大多数开源发行版都构建于 x86 服务器之上,所以在尝试为不同架构(比如 IBM Power 架构)构建它们时可能遇到问题。

如果在 Power 上构建开源包时遇到问题,只需在互联网上搜索类似情形,查看这些已报告的问题是否与您的经历密切相关。如果是相关的,那么在大多数情况下,您可以找到如何解决该问题的建议。

对我而言,尽管为配置脚本选择正确参数后,postgresql 很好地构建完成了,但 apache httpd 没那么幸运。接下来的几节将介绍为 Power 架构构建 apache httpd 所需的修复程序。

交叉编译器经验

编写本文时,我使用的交叉编译器版本是一个仅供 IBM 内部使用的版本,它专为修复我在测试期间遇到的一个错误而构建。读者可以下载 AT 7.0-5 版,它是最新的交叉编译器(在发表本文时),拥有接下来的几段中描述的错误的修复程序。

在我尝试交叉编译 apr-1.5.1 源代码发行版时,我看到了以下编译器消息。

"sorry - this program has been built without plugin support"

按照我在互联网上搜索可能的帮助和解决方案的建议,我找到多个链接提到编译器需要使用 “plugin enabled” 选项来构建。我向 toolchain 支持小组报告了此问题,toolchain 维护人员很快就回复了我,为我提供了一个使用 plugin enabled 选项构建的修改版本。请注意,toolchain 的交叉编译器和原生编译器版本都需要使用 plugin enabled 选项构建。我能够在获得拥有该修复程序的 toolchain 版本后继续工作。

这是我使用 PowerLinux toolchain 的第一次经历。

交叉编译 httpd 2.4.3

要交叉编译 Apache httpd,需要使用另外 3 个包。它们是:apr、apr-util 和 pcre。找到下载最新包的位置后,开始使用 toolchain 交叉编译器在 x86 服务器上构建它们。

我构建 apr-1.5.1 时遇到的问题是构建 gen_test_char.o 模块。请参阅 ASF Bugzilla – 错误 51257 了解有关的更多细节。我修改了 Makefile.in 文件(如下所示)并运行 buildconf 脚本,以便将更改包含在配置脚本中。

对 Makefile.in 的修改如下所示:

[root@stgisv240 apr-1.5.1]# diff -u Makefile.in ../../apr-1.5.1/Makefile.in

--- Makefile.in 2014-03-17 10:10:26.000000000 -0500

+++ ../../apr-1.5.1/Makefile.in 2014-07-03 13:36:11.125013781 -0500

@@ -46,7 +46,6 @@

CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.c .make.dirs build/apr_rules.out tools/gen_test_char@EXEEXT@ - tools/gen_test_char.o tools/gen_test_char.lo \

include/private/apr_escape_test_char.h

DISTCLEAN_TARGETS = config.cache config.log config.status include/apr.h include/arch/unix/apr_private.h @@ -132,10 +131,9 @@

make_tools_dir:

$(APR_MKDIR) tools

-OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)

-tools/gen_test_char.lo: make_tools_dir

-tools/gen_test_char@EXEEXT@:$(OBJECTS_gen_test_char)

- $(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS)

+tools/gen_test_char@EXEEXT@: make_tools_dir

+tools/gen_test_char@EXEEXT@: tools/gen_test_char.c

+ $(BUILD_CC) $(CFLAGS_FOR_BUILD) $<-o $@

include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@

$(APR_MKDIR) include/private

修改 Makefile.in 文件后,我运行 buildconf 来创建了一个新配置脚本。下一段将介绍用于配置脚本的参数和变量。顺便说一下,我是根据其他尝试在其他平台(比如 ARM)上交叉编译 Apache httpd 及其组件的开发人员的建议,为配置脚本选择配置参数的。

以下是我在 x86 服务器上运行 apr-1.5.1 组件的配置脚本时,使用的参数和环境变量。

# Config script using Power Linux toolchain on x86

BUILD_CC=gcc

CC_FOR_BUILD=gcc

CC=powerpc64-linux-gcc

CPP=powerpc64-linux-cpp

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

LD=powerpc64-linux-ld

STRIP=powerpc64-linux-strip

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/tmp/usr/local/apr --host=powerpc64-linux ac_cv_file__dev_zero=no

ac_cv_func_setpgrp_void=no apr_cv_tcp_nodelay_with_cork=no ac_cv_sizeof_struct_iovec=1

BUILD_CC=gcc make install

我在 Power 服务器上了略加修改的相同发行版。请注意,用于 Power 服务器的 PowerLinux toolchain 使用了具有类似命名的可执行程序,比如从原生 cpp 和 binutils 包安装的 cpp 和 ld。修改脚本中的 CPP 和 LD 变量,如下所示。确保 Power toolchain 的路径首先传入您的 PATH 环境中。

以下是我在 Power 服务器上运行 apr-1.5.1 的配置脚本时使用的参数和环境变量。

# Config script using PowerLinux toolchain on Power

BUILD_CC=gcc

CC_FOR_BUILD=gcc

CC=powerpc64-linux-gcc

CPP=cpp # Note the difference

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

LD=ld # Note the difference

STRIP=powerpc64-linux-strip

#CFLAGS="-mcpu=440fp -mtune=440fp --sysroot $SYSROOT"

#LDFLAGS=-L$SYSROOT/lib

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/home/usr/local/apr ac_cv_file__dev_zero=no

ac_cv_func_setpgrp_void=no apr_cv_tcp_nodelay_with_cork=no ac_cv_sizeof_struct_iovec=1

ac_cv_struct_rlimit=yes

BUILD_CC=gcc make install

以下是我在 x86 服务器上运行 apr-util-1.5.3 组件的配置脚本时使用的参数和环境变量。

# Configure script for apr-util-1.5.3 on x86

BUILD_CC=gcc

CC_FOR_BUILD=gcc

CC=powerpc64-linux-gcc

CPP=powerpc64-linux-cpp

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

LD=powerpc64-linux-ld

STRIP=powerpc64-linux-strip

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/tmp/usr/local/apr --host=powerpc64-linux --with-

apr=/tmp/usr/local/apr ac_cv_file__dev_zero=no ac_cv_func_setpgrp_void=no

apr_cv_tcp_nodelay_with_cork=no ac_cv_sizeof_struct_iovec=1

以下是我在 Power 服务器上运行 apr-util-1.5.3 组件的配置脚本时使用的参数和环境变量。

# Configure script for apr-util-1.5.3 on Power

BUILD_CC=gcc

CC_FOR_BUILD=gcc

CC=powerpc64-linux-gcc

CPP=cpp

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

LD=ld

STRIP=powerpc64-linux-strip

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/home/usr/local/apr --host=powerpc64-linux --with-

apr=/tmp/usr/local/apr ac_cv_file__dev_zero=no ac_cv_func_setpgrp_void=no

apr_cv_tcp_nodelay_with_cork=no ac_cv_sizeof_struct_iovec=1

以下是我在 x86 服务器上运行 httpd 组件的配置脚本时使用的参数和环境变量。

# Configure script for httpd 2.4.3 on x86

CC_FOR_BUILD=gcc

CC=powerpc64-linux-gcc

CPP=powerpc64-linux-cpp

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

LD=powerpc64-linux-ld

STRIP=powerpc64-linux-strip

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/tmp/usr/local --host=ppc64 ap_cv_void_ptr_lt_long=no --with-

pcre=/tmp/usr/local/bin/pcre-config --with-apr=/tmp/usr/local/apr --with-mpm=worker--

with-apr-util=/tmp/usr/local/apr/bin/apu-1-config

以下是我在 Power 服务器上运行 httpd 组件的配置脚本时使用的参数和环境变量。

# Configure script for httpd 2.4.3 on Power

CC_FOR_BUILD=gcc

CC=powerpc64-linux-gcc

CPP=cpp

AS=powerpc64-linux-as

#ASCPP=powerpc-apm-linux-gnu-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

#CXXCPP=powerpc-apm-linux-gnu-cpp

CXX=powerpc64-linux-c++

LD=/opt/at7.0-5-rc1/bin/ld

STRIP=powerpc64-linux-strip

#CFLAGS="-mcpu=440fp -mtune=440fp --sysroot $SYSROOT"

#LDFLAGS=-L$SYSROOT/lib

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/home/usr/local --host=ppc64 ap_cv_void_ptr_lt_long=no--with-

pcre=/home/usr/local/bin/pcre-config --with-apr=/home/usr/local/apr --with-mpm=worker--

with-apr-util=/home/usr/local/apr/bin/apu-1-config

交叉编译 PostgreSQL 9.4.3

不同于之前构建 httpd 所需的源代码发行版,我在交叉编译 PostgreSQL 时未遇到问题。PostgreSQL 是使用以下配置脚本来构建的。

以下是我在 x86 服务器上运行 PostgresSQL 的配置脚本时使用的参数和环境变量。

# Configure script for postgresql-9.3.4 on x86

CC=powerpc64-linux-gcc

CPP=powerpc64-linux-cpp

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

D=powerpc64-linux-ld

STRIP=powerpc64-linux-strip

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/tmp/usr/local --host=powerpc64-linux --without-readline --without-zlib

与 Apache 配置脚本一样,您可以注意到针对 Power 服务器 toolchain 使用了具有类似命名的可执行程序,比如从原生 cpp和 binutils 包安装的 cpp 和 ld。修改脚本中的 CPP 和 LD 变量,如下所示。确保 toolchain 的路径首先传入您的 PATH 环境中。

以下是我在 Power 服务器上运行 PostgresSQL 的配置脚本时使用的参数和环境变量。

# Configure script for postgresql-9.3.4 on Power

CC=powerpc64-linux-gcc

CPP=cpp

AS=powerpc64-linux-as

AR=powerpc64-linux-ar

RANLIB=powerpc64-linux-gcc-ranlib

CXX=powerpc64-linux-c++

LD=powerpc64-linux-ld

STRIP=powerpc64-linux-strip

export CC CPP AS ASCPP AR RANLIB CXXCPP CXX LD STRIP CFLAGS LDFLAGS CC_FOR_BUILD

./configure --prefix=/home/usr/local --host=powerpc64-linux --without-readline --without-zlib

结束语

toolchain 交叉编译器的实际价值在于,开发人员可在他们熟悉的开发平台上(在大多数情况下是 x86)编译和构建 Power Architecture 应用程序。从我们的用例中可以看到,toolchain 可生成像原生编译的应用程序一样高效地执行的二进制可执行程序和库。而且,交叉编译的库与原生编译的应用程序兼容。最后但同样重要的是,交叉编译的应用程序可在本地调试以及使用 gdb 调试器远程调试。

PowerLinux toolchain 与在 x86 平台上使用原生 Linux toolchain 没什么不同。希望本文能让读者很好地了解 PowerLinux toolchain 的特性和功能。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/430201.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-27
下一篇2023-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存