linux伺服器編譯
伺服器CPU事實已經被Intel壟斷了,就那麼幾種型號,編來編去生成的機器碼是一樣的。Intel宣傳自己的編譯工具Intel C++ Compiler 比GCC編譯出來性能要提升10%-20%,這就是一廣告,生產環境很少用人用它,何況它還要收費
性能真不是問題,比如 strip 命令可以大大減小可執行文件的size,但是我裝過幾千遍軟體,都沒有見有人在安裝腳本裡面使用。
軟體需要編譯安裝的真實理由有如下3點:
1.軟體在編譯期間需要配置,比如說nginx,需要在編譯的時候指定包含哪些mole,php,apache 也是一樣。
同樣的是資料庫,mysql 通過編譯安裝,因為要定製存儲引擎(是否支持innodb .. ),而sqlite卻絕少有人編譯,都是直接下載二進制文件來用。
2.軟體需要統一安裝路徑,每個team都會自己的安裝目錄約定,有些喜歡裝在 /opt/下面,有些喜歡裝在 /usr/local/ ,編譯安裝可以方便的指定這些路徑(configure --prefix=xxx )
3.需要最新的版本,軟體倉庫的版本一般都比較低,這個理由其實不充分,生產環境傾向保守,不追求最新版本,但是對於geek來說,這可能是最重要的原因
弄明白原因之後,就很容易判斷編譯還是下載:
nginx/apache/php/mysql 編譯安裝
python/ruby/java 直接下載
Ⅱ 如何在linux伺服器中使用GCC編譯器
首先確定你用的是標準的c/c++ ,沒有設計VC中的內容(例如MFC庫函數,windows API等)
如果文件很少,你 用gcc hello.c -o hello 這類的語句就可以。
如果文件比較多,還是寫一個makefile文件,批量解決。
希望能幫到你。
Ⅲ 如何在linux系統的伺服器上進行編譯
方法/步驟
打開Myeclipse編輯器,在已經完成的web項目上面點擊右鍵,選擇export,然後選擇導出成war包,將導出的war包放在桌面或者其他文件夾。
Ⅳ linux系統中dns服務編譯安裝配置詳細
用LINUX拱建DNS伺服器有三種類型:緩存域名伺服器,主域名伺服器,從域名伺服器。
緩存的是類似於內存的伺服器,可以提高訪問速度,比如同一個網頁,第一次要從互連網上連,然後就會存到緩存里,後面的再有訪問同一個網頁就直接從緩存伺服器上讀取了。
主/從域名伺服器就像是一個公司的總經理和副總經理。主伺服器上有相關的配置文件,從伺服器就沒有,要從主伺服器上復制的。
一般的企業要有緩存和主伺服器就好了。對於大型的,搭建個從的更好咯。
Ⅳ 如何編譯linux的x86內核
Gcc編譯器, Linux-2.6.29內核
步驟:
(一):清除臨時文件,中間文件和配置文件等(剛從網上下載下來的文件這步可省略)。
make clean
刪除大多數的由編譯生成的文件、但會保留內核的配置文件.config。
make mrproper
刪除所有的編譯生成的文件,還有內核配置文件,再加上各種備份文件。
make distclean
mrproper刪除的文件,加上編輯備份文件和一些補丁文件。
(二)選擇參考配置文件
使用正在運行的內核配置文件作為參考配製文件,該配置文件在/boot目錄下,使用命令
cp /boot/config-2.6.18-53.el5 .config。
(三)配置內核
配置內核有如下命令:
make config:基於文件模式的互動式配置(也就是一問一答)。
make menuconfig:基於文本模式的菜單式配置(強烈推薦)。
make oldconfig:使用已有的配置文件(.config)但是會詢問新增的配置選項。
make xconfig:圖形化配置(需要安裝圖形化系統)。
make menuconfig是最為常用的內核配置方式,使用方法如下:
1、使用方向鍵在各選項間移動;
2、使用「Enter」鍵進入下一層選單;每個選項上的高亮字母是鍵盤快捷方式,使用它可以快速地到達想要設置的選單項。
3、在括弧中按「y」將這個項目編譯進內核中,按「m」編譯為模塊,按「n」為不選擇(按空格鍵也可在編譯進內核、編譯為模塊和不編譯三者間進行切換),按「h」將顯示這個選項的幫助信息,按「Esc」鍵將返回到上層選單。
內核配置通常在一個已有的配置文件基礎上,通過修改得到新的配置文件Linux內核提供了一系列可供參考的內核配置文件,位於Arch/$cpu/configs
注意:要運行make menuconfig的界面需要調整終端的窗口大小,至少為80*19。
(四)編譯內核
(1):make zImage
(2):make bzImage
區別:在X86平台,在zImage只能用於小於512Kd的內核(注意是X86平台)
如需獲取詳細編譯信息,可使用:
make zImage V=1
make bzImage V=1
編譯好的內核位於arch/<cpu>/boot目錄下
(五)編譯內核模塊
使用命令make moles
內核模塊編譯的時間比較長,一般需要1~2小時的時間。這些模塊源於使用命令make menuconfig啟動的菜單型配置界面中選擇<m>的項。
(六)安裝內核模塊
使用命令:make moles_install,完成安裝後,編譯好的內核模塊會從內核源代碼目錄拷貝至/lib/moles/2.6.29目錄下。
(七)製作init ramdisk
使用cd跳動linux-2.6.29/,目錄的上層目錄,使用命令:mkinitrdinitrd-$version $version(mkinitrd initrd-2.6.29 2.6.29)將上一步中產生的模塊目錄/lib/moles/2.6.29製作成initrd-2.6.29。
提示:initrd是「initial ramdisk」的縮寫,initrd是在實際根文件系統可用之前掛載到系統中的一個初始根文件系統。在桌面或伺服器Linux系統中,initrd是一個臨時的文件系統。其生命周期很短,只會用作真實文件系統的一個橋梁。在沒有存儲設備的嵌入式系統中,initrd可以是永久的根文件系統。
Linux的眾多發行版之所以使用initrd主要是為了在內核啟動之後能夠判斷哪些硬體驅動需要載入,哪些不需要,文件系統有沒有問題等,最終使得根分區能順利載入。在scsi和sata設備上啟動,usb啟動盤,無盤伺服器等都需要initrd來做判斷,這樣可以提高Linux內核的通用性。
(八)安裝內核
由於Linux系統啟動時,會從/boot目錄下尋找內核文件與init ramdisk,所以需要將內核和initrd拷貝至/boot目錄。使用命令:
cp initrd-2.6.29 /boot
cp linux-2.6.29/arch/x86/boot/bzImage /boot/vmlinuz-2.6.29
(九)修改/etc/grub.conf或者/etc/lilo.conf
為了讓grub在啟動時能提供一項我們自己製作的linux內核的選項,需要修改grub的配置文件/etc/grub.conf。(添加的代碼為title My Linux(2.6.29)以下的)
注意:/etc/grub.conf實際上是/boot/grub/grub.conf的一個鏈接,因此真正的配置文件存在與/boot/grub目錄下。
Ⅵ 怎麼重新編譯linux伺服器內核
make
config首先配置內核,生成內核配置文件,如果是伺服器上的,建議使用編輯好的內核配置文件,自己在伺服器上配置比較麻煩;
make再根據生成的配置文件進行編譯;
找到新的內核就可以使用
Ⅶ Linux編譯伺服器上怎麼下載內核源碼
編譯linux內核步驟: 1、安裝內核 如果內核已經安裝(/usr/src/目錄有linux子目錄),跳過。如果沒有安裝,在光碟機中放入linux安裝光碟,找到kernel-source-2.xx.xx.rpm文件(xx代表數字,表示內核的版本號),比如RedHat linux的RPMS目錄是/RedH...
Ⅷ 如何建立Linux系統下交叉編譯環境
最近有很多朋友在探討關於建立Linux交叉編譯環境的問題,下面就一些問題作一個說明,以期拋磚引玉。 基於Linux操作系統的應用開發環境一般是由目標系統硬體(開發板)和宿主PC機所構成。目標硬體開發板用於運行操作系統和系統應用軟體,而目標板所用到的操作系統的內核編譯、應用程序的開發和調試則需要通過宿主PC機來完成(所以稱為交叉編譯)。雙方之間一般通過串口,並口或乙太網介面建立連接關系。 但在此我建議構建如下的交叉編譯環境,適合個人或研發小組使用:單獨拿出一台PC機(PII以上即可,就用以前淘汰的舊機器就可以),在該PC上安裝桌面的Linux操作系統(如Red Hat Linux 8.0及以上),可以採用默認的安裝選項(注意要包含ftp服務),這台PC作為Linux伺服器,除管理員以外,一般不直接讓其他人去操作。 將該Linux伺服器接入區域網,並新建一些合法用戶,以便其他的PC機(在此我們將其稱為工作站)的合法用戶能訪問到Linux伺服器。而其他的PC機(工作站)仍然使用Windows操作系統,原來幹啥繼續幹啥。 需要的軟體工具包括: 1、FTP客戶端程序(如Cuteftp,可到網上下載)。 2、Telnet工具(如SecureCRT,可到網上下載)。 3、移植到某一特定ARM平台的Linux操作系統內核源碼(一般由銷售商整理提供)。 4、GNU編譯工具,可由相關網站下載,或由銷售商整理提供。 在工作站安裝:在某工作站PC上安裝FTP客戶端程序和Telnet工具,安裝完畢後應該可以在該工作站PC和Linux伺服器之間進行文件的傳輸,並在工作站PC可以通過Telnet登陸到Linux伺服器(可能需要將Linux伺服器的防火牆服務關閉才能完成)。 在Linux伺服器安裝:將工作站PC上的Linux操作系統內核源碼壓縮包和GNU編譯工具通過FTP傳送到Linux伺服器的某個目錄(如合法的用戶目錄),然後在該目錄下解壓,並將GNU編譯工具安裝到默認的工作目錄即可,以上工作通過在工作站PC使用Telnet工具完成,而不需要在Linux伺服器上進行。 Linux操作系統內核的編譯:Linux操作系統內核的編譯一般有一個比較固定的步驟,會根據MakeFile文件的不同而略有差異,可參考相關文檔,編譯的工作在工作站PC使用Telnet工具完成。 按固定的步驟編譯內核完成以後,會在相應目錄生成可執行的二進制文件,通過FTP將該可執行的二進制文件傳回工作站PC,然會再通過ADS或SDT下的燒寫工具寫入開發板的Flash即可。 (T004)
Ⅸ linux怎麼編譯svn伺服器
1,首先安裝好LINUX系統,然後YUM安裝:
#yum -y install svnversion
2,安全完成之後我們來配置:
創建版本庫目錄:
#mkdir -p /banbenku/svn/
3,然後啟用:
#svnserve -d -r /banbenku/svn
然後查看是否啟動了!
ps -ef|grep svn;
[root@207 conf]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 8454 root 3u IPv4 1346200 0t0 TCP *:svn (LISTEN)
4,然後我們來新建版本:
mkdir -p /banbenku/svn/zhoujie/
cd /banbenku/svn/zhoujie/conf
在這里有三個文件:authz passwd svnserve.conf
svnserve.conf是主要配置文件;
vi svnserve.conf
修改如下:
anon-access = read
auth-access = write
password-db = /banbenku/svn/zhoujie/conf/passwd
authz-db = /banbenku/svn/zhoujie/conf/authz
wq!
保存退出:
然後修改passwd:
建立用戶名與密碼內容如下:
zhoujie = 123456
wq
保有存退出:
然後修改:authz:
內容如下:
[groups]
admin = zhoujie
[zhoujie:/]
@admin =rw
wq
保存退出!
這樣我們便配置好了;要使用啟生效,重啟SVN:
ps -ef|grep svn
kill -9 PID
svnserve -d -r /banbenku/svn
然後再檢測:
[root@207 conf]# lsof -i:3690
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
svnserve 8454 root 3u IPv4 1346200 0t0 TCP *:svn (LISTEN)
如果如上所示,那便沒有問題了;
Ⅹ 安裝了一台Linux伺服器,想自己編譯內核,一步一步做下來,
一般情況下
initrd這個文件在台式機上不是必須的,但是在有SCSI設備的伺服器上卻是必須的。有可能因為編譯內核的時候沒有產生initrd那個文件,所以會有上面的錯誤提示。用戶可以使用mkinitrd命令來生成一個initrd.img文件,然後加入GRUB,重啟試一試更多內容請查看《Linux就該這么學》。