資源描述:
《Linux系統(tǒng)第07章Vsftpd源碼包的編譯安裝》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第07章vsftpd源碼包安裝重點(diǎn)、難點(diǎn):掌握tar命令的使用掌握源碼包的編譯安裝過程1開源軟件的優(yōu)勢(shì)1.1GNU組織GNU是一個(gè)自由軟件工程項(xiàng)目。GNU工程已經(jīng)開發(fā)了一個(gè)被稱為“GNU”(GNU是“不是UNIX”的縮寫)的、對(duì)Unix向上兼容的完整的自由軟件系統(tǒng)(freesoftwaresystem)。由RichardStallman完成的最初的GNU工程的文檔被稱為‘GNU宣言’,該宣言已經(jīng)被翻譯成多種其它語言。我們還有創(chuàng)作與1983年的GNU工程創(chuàng)始宣言。上述單詞“free”指的是自由(freedom),而不是價(jià)格。你可能需要或者不需要為獲取GNU軟件而支付費(fèi)用。不論是否免
2、費(fèi),一旦你得到了軟件,你在使用中就擁有三種特定的自由。首先是復(fù)制程序并且把它送給你的朋友或者同事的自由;而后是通過獲取完整的源代碼,按照你的意愿修改程序的自由;最后是發(fā)布軟件的改進(jìn)版并且有助于創(chuàng)建自由軟件社團(tuán)的自由。(如果你重新發(fā)布GNU軟件,你可能對(duì)分發(fā)拷貝這項(xiàng)體力勞動(dòng)收費(fèi),也可能不收費(fèi)。)1.2開源軟件的意義、優(yōu)點(diǎn)Linux賣的是服務(wù),不是產(chǎn)品開源就是一種思想,互相提高更重要開放源代碼,利用眾人的智慧來完善代碼2文檔歸檔管理方式tar功能:tar是“tapearchive”(磁帶存檔)的簡(jiǎn)稱,建立存檔。格式:tar[參數(shù)][tar包名][源文件名][-C指定存放目錄]參數(shù):-c
3、:創(chuàng)建tar包-f:指定文件名-v:顯示操作信息-t:列出tar包中的文件(*.tar)-x:解tar包(*.tar)-z:使用gzip壓縮/解壓縮文件實(shí)例:#tar-cvfaaa.taraaa/#tar-czvfaaa.tar.gzaaa/#tar-czvfaaa.tgzaaa/#tar-cjvfaaa.tar.bz2aaa/#tar-xvfaaa.tar#tar-zxvfaaa.tar.gz#tar-zxvfaaa.tar.gz-C/home/aaa/#tar-jxvfaaa.tar.bz2gzip功能:文件壓縮/解壓縮(并替換原文件,解壓路徑取決于壓縮時(shí)的路徑)格式:gzip
4、[參數(shù)][文件名]參數(shù):-d:解壓縮-t:檢驗(yàn)壓縮包文件是否損壞-l:列出壓縮文件的壓縮比例等信息-r:遞歸壓縮(同時(shí)壓縮子目錄中的文件)-v:顯示詳細(xì)信息實(shí)例:#gzipabc.txt#gzip-cabc.txt>aaa.gz//壓縮到其他文件,并保留原文件。#gunzipabc.txt.gz#gzip-dvabc.txt.gz3源碼編譯過程首先檢查是否在你的機(jī)器上安裝了GCC,使用命令:可用rpm-qgcc檢查。如果沒有安裝,請(qǐng)依序檢查並安裝下面各RPMlibbinutilsbinutilsmakeglibc-develgcc-cppgcc看下面的例子:te
5、st.c#includemain(){char*str="IlikeLinux!IadvicesyoujionintheLinuxWorld";printf("%s",str);exit(0);}使用gcc編譯。輸入gcc-ctest.c得到目標(biāo)文件test.o.-c命令表示對(duì)文件進(jìn)行編譯和匯編。但并不連接。如果再健入gcc-o../bin/testtest.o,那么將得到名為test的可執(zhí)行文件。其實(shí)這兩不可以一氣呵成,gcc../bin/testtest.c.如果程序沒有錯(cuò)誤救生成了可執(zhí)行文件。也許你會(huì)覺得基于命令行的編譯器比不上如VC之類的集成開發(fā)環(huán)境
6、,的確gcc的界面要改進(jìn),但是你一旦熟練了就會(huì)感到。gcc的效率如此之高??梢愿嬖V大家的是Linux底下強(qiáng)大的C/C++集成開發(fā)環(huán)境Kdevelope和Vc一樣強(qiáng)大,使用了Gcc編譯器。Make使用和makefile腳本配置文件介紹makefile關(guān)系到了整個(gè)工程的編譯規(guī)則。一個(gè)工程中的源文件不計(jì)數(shù),其按類型、功能、模塊分別放在若干個(gè)目錄中,makefile定義了一系列的規(guī)則來指定,哪些文件需要先編譯,哪些文件需要后編譯,哪些文件需要重新編譯,甚至于進(jìn)行更復(fù)雜的功能操作,因?yàn)閙akefile就像一個(gè)Shell腳本一樣,其中也可以執(zhí)行操作系統(tǒng)的命令。makefile帶來的好處就是——
7、“自動(dòng)化編譯”,一旦寫好,只需要一個(gè)make命令,整個(gè)工程完全自動(dòng)編譯,極大的提高了軟件開發(fā)的效率。make是一個(gè)命令工具,是一個(gè)解釋makefile中指令的命令工具make命令執(zhí)行時(shí),需要一個(gè)Makefile文件,以告訴make命令需要怎么樣的去編譯和鏈接程序。首先,我們用一個(gè)示例來說明Makefile的書寫規(guī)則。以便給大家一個(gè)感興認(rèn)識(shí)。這個(gè)示例來源于GNU的make使用手冊(cè),在這個(gè)示例中,我們的工程有8個(gè)C文件,和3個(gè)頭文件,我們要寫一個(gè)Makefile來告訴ma