Ⅰ 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 監聽程序當前無法識別連接描述符中請求的服務