Ⅰ Ubuntu20.04 下手动编译安装gcc-6.3.0安装,多版本GCC 共存和切换
在Ubuntu 20.04中手动编译并安装GCC 6.3.0,解决多版本GCC共存及切换问题,满足编译Matlab中的mex所需。
已安装GMP、MPFR、CGAL、GPTOOLBOX,但无法使用sudo apt-get install gcc-6来安装,因为默认安装的版本为6.5.0。可通过apt-get安装gcc-8、gcc-9、gcc-10版本。
安装GCC 6.3.0步骤如下:
1. 访问ftp.gnu.org/gnu/gcc/下载GCC 6.3.0。
2. 进行安装,命令需包含gcc编译路径配置,与GMP、MPFR、CGAL、GPTOOLBOX的安装位置有关,安装过程耗时较长且可能出现错误。
在切换GCC版本时,需查看系统已安装的GCC版本。
设置GCC各版本优先级,同时设置g++版本优先级,确保切换对应的gcc版本的g++。
遇到错误时,根据错误提示解决,如`configure: error: `CC' has changed since the previous run`,可通过运行`make distclean`和删除`./config.cache`解决。对于`error: dereferencing pointer to incomplete type 'struct ucontext'`错误,需在struct定义变量时采用严格形式。对于`sanitizer_platform_limits_posix.cc:158:23: 致命错误: sys/ustat.h:没有那个文件或目录`,使用预计算linux的struct ustat大小可解决。`sanitizer_common/sanitizer_internal_defs.h:254:72: error: size of array ‘assertion_failed__1141’ is negative`错误,通过在configure命令中直接注释`--disable-libsanitizer`,或在无需使用golang时移除`go`支持,可解决构建GCC 6.3.0在Ubuntu-20.04时遇到的问题。
Ⅱ Linux发行版:Redhat、RHEL、CentOS是什么关系
GNU/Linux是基于GPL开源许可协议的操作系统内核,但仅仅有内核还不是一个完整的操作系统,要想可以使用还需要集成各种应用软件。Linux发行版就是指预先集成好的Linux操作系统及各种应用软件,一般情况下用户直接安装就可以使用,不需要再重新编译。
发布Linux发行版的既有商业公司,也有开源社区,现在有超过300个Linux发行版,而且大多数都比较活跃,比如Ubuntu,Fedora,Red Hat Enterprise Linux(RHEL),CentOS,Debian。中国的发行版有刚进入政府采购名称的中兴新支点、相对比较成熟的深度deepin等。
我们平常所说的安装个Linux操作系统指的都是安装一个Linux的发行版。
Redhat(红帽)是一家总部位于美国北卡罗来纳州罗利的公司,是世界领先的企业级开源 IT 解决方案提供商,主要开发和售卖Linux及提供技术服务,成立于1993年,于2018年10月被IBM收购。
Red Hat Enterprise Linux(红帽企业Linux,简写RHEL)是Redhat公司推出的主要的Linux发行版,属于开源操作系统。用户可基于这一平台,在裸机、虚拟环境、容器及各类云环境之间扩展现有应用并部署各种新兴技术。
上面我们说过,商业公司Redhat推出了Linux的发行版RHEL,那么根据Linux的GPL开源许可证,Redhat必须开源RHEL的源代码。于是开源社区将RHEL的源代码拿过来,稍作改动,主要是去掉Redhat的商标信息等,然后重新编译发布,就是我们现在知道的CentOS。
虽然CentOS的源码是直接搬用RHEL的,但这在法律上是完全没问题的,因为发布出来的CentOS同样也遵守了GPL。除了一些Redhat的商业应用软件,CentOS追求的是与RHEL 100%兼容。
CentOS已经于2014年被Redhat收购,有了Redhat在治理体系和内容上的帮助,CentOS在获取包括源码在内的开发资源也更加容易。CentOS是由CentOS理事会管理的,在Redhat收购CentOS之后,理事会共11名成员,除了部分原有的理事会成员,还包括了Redhat提名的成员,Redhat提名人员占多数。
上面说过了CentOS是通过编译RHEL的源码来进行发布的,所以CentOS的发布总是在RHEL发布后不久,一般不超过72小时,大版本发布的话会有延迟。自从CentOS 4.4版本开始,RHEL和CentOS就采用了统一的版本规则。
就像我们在之前的文章提到的,所有基于GPL开源许可协议发布的软件,其收费都不是为了版权,而是为其提供的服务和技术支持收费,Redhat的RHEL也是一样。CentOS作为从RHEL源码直接编译的发行版,其作为服务器的高效率及稳定性等方面都是经过实践验证的,所以如果自己有丰富的服务器运维经验,那你可以选择CentOS。但如果没有专业的运维团队,又需要大规模部署,那还是选择RHEL比较明智,Redhat团队会为你提供专业的、标准化的解决方案和专业的技术支持。
Ⅲ Linux安装Oracle12c操作手册
基本环境:
服务器:64位、16核CPU、384G内存、16T硬盘
操作系统:CentOS 7.4
Oracle版本:12c (版本号12.1.0.2.0)
安装必要的软件包:
查看rpm包是否安装:rpm -qa | grep 名称
安装相关rpm包:rpm -ivh compat-libcap1-1.10-7.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-16.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-16.el7.x86_64.rpm
rpm -ivh libstdc++-devel-4.8.5-16.el7.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-16.el7.x86_64.rpm
rpm -ivh ksh-20120801-34.el7.x86_64.rpm
rpm -ivh lio-devel-0.3.109-13.el7.x86_64.rpm
创建oracle用户:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle (注意需要输入两遍密码)
创建oracle和oradata目录:
创建安装目录:mkdir -p /u01/app/oracle
设置权限:chown -R oracle:dba /u01/
chmod -R 775 /u01/
创建oraInventory目录:mkdir -p /u01/app/oraInventory
设置权限:chown -R oracle:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
创建表空间目录:mkdir -p /data/oradata/
设置权限:chown -R oracle:dba /data/oradata/
chmod -R 775 /data/oradata/
设置oracle目录权限:chown -R oracle:dba /home/oracle/
chmod -R 775 /home/oracle/
关闭selinux防火墙:
设置:setenforce 0
查看状态:getenforce
若返回Enforcing,则表示已关闭。
修改内核参数:
备份sysctl.conf:cp /etc/sysctl.conf /etc/sysctl.conf.bak
编辑sysctl.conf:vi /etc/sysctl.conf
添加参数:kernel.shmmax = 408021893120
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 16777216
net.core.wmem_default = 262144
net.core.wmem_max = 16777216
fs.aio-max-nr = 1048576
fs.file-max = 6815744
修改oracle用户限制:
编辑limits.conf:vi /etc/security/limits.conf
添加限制:oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 2047
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
修改登录文件:
编辑pam.d/login:vi /etc/pam.d/login
添加参数:session required pam_limits.so
session required /lib64/security/pam_limits.so
更改ulimit设置:
编辑profile文件:vi /etc/profile
添加参数:if [ /$USER = "oracle" ]; then
if [ /$SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
设置环境变量:
切换到oracle用户:su oracle
编辑.bash_profile:vi .bash_profile
添加环境变量:export TMP=/tmp
export TMPDIR=/tmp
export ORACLE_UNQNAME=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/proct/12.1.0/dbhome_1
export ORACLE_SID=orcl
export PATH=${PATH}:$HOME/bin:$ORACLE_HOME/bin:/usr/sbin:/usr/bin:/usr/local/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
激活环境变量:source .bash_profile
安装Oracle12c数据库:
通过Xshell、Xmanager远程进入Oracle数据库安装界面:
设置Xshell和Xmanager,查看DISPLAY环境变量,设置DISPLAY为对应ip:0.0,设置LANG为en_US。
打开Xmanager,通过Xshell远程进入安装界面。
创建软件文件夹:mkdir -p /data/software/
将安装包通过Xftp拷贝至/data/software/,解压并执行安装脚本。
安装完成后,远程进入安装界面。
重启Oracle监听服务:
修改listener和tnsnames配置文件,将localhost替换为实际ip。
通过Xshell,以oracle用户登录,关闭和开启监听服务,注册数据库。
具体命令:lsnrctl stop、lsnrctl start、lsnrctl status、sqlplus / as sysdba、shutdown immediate、startup、alter system register。
其他命令:startup mount、alter database open、show parameter background_mp。
参考资料:
1)LINUX7(CentOS7)上安装Oracle 12C
2)linux 内存管理——内核的shmall 和shmmax 参数
3)解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务