initdb error "cannot restore segment prot after reloc"

PostgresqlDB安装完成后在db用户下执行 initdb -D /usr/pgsql 时,发生无法加载库文件的错误,并有提示cannot restore segment prot after reloc

Google搜索后查到如下解释:

Topic: Some Linux distributions with SELinux enabled may prevent IDL from running under the default security context. This TechTip is a workaround for CR#41937

Discussion: Newer Linux distributions have enabled new kernel security extensions from the SELinux project at the NSA. These extensions allow finer-grained control over system security. However, SELinux also changes some default system behaviors, such as shared library loading, that can be problematic to third party programs.

If you receive the error message cannot restore segment prot after reloc: Permission denied when launching IDL, then your SELinux configuration is preventing IDL from launching. To rectify this issue, you can either:

1.Change the default security context for IDL by issuing the command:

chcon -t texrel_shlib_t /usr/local/rsi/idl_6.1/bin/bin.linux.x86/*.so

2.Disabling SELinux altogether by setting the line

SELINUX=disabled

用第一种方法可以解决上述问题,在root用户下执行命令:

chcon -t texrel_shlib_t /opt/PostgresPlus/8.3AS/dbserver/lib/*

这儿需要注意,/opt/PostgresPlus/8.3AS/dbserver/lib下的so文件,很多都需要用上面的命令执行一下才可以,由于这些文件中还有 *.so.5 、*.so.2之类的文件,所以执行时使用了 * ,这样可以把所有的文件都覆盖到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值