您好,登錄后才能下訂單哦!
一、概述
Linux系統中的軟件大都是開源軟件,這些軟件總是以源碼的形式最先發布,之后才會逐漸出現rpm、deb等封裝包。下載應用程序的最新源碼并編譯安裝,可以在程序功能、安全補丁等方面得到及時更新
對于RPM格式封裝的應用程序,當作者在編譯源代碼程序的時候,有可能綁定了許多功能,安裝時被綁定的其它功能也一并安裝到Linux主機上,這樣就可能造成一些安全隱患。因為RPM軟件包的更新并沒有源代碼。通過對程序源代碼進行重新配置并編譯安裝后,可以定制更靈活、更豐富的功能
當需要對現有的程序源代碼進行適當修改,以便增加新的功能時,也必須釋放出該軟件的源代碼,進行修改后再重新編譯安裝
二、編譯安裝
編譯安裝的基本步驟
解包---tar
解包,釋放出源代碼文件
配置---./configure
該過程的主要作用是生成makefile文件。配置工作通常由源代碼目錄中的“configure”腳本文件來完成,配置結果將保存到源碼目錄中的makefile文件中。如果在配置過程中出現錯誤,通常是缺少相關的依賴軟件包所致,一般只需根據提示安裝對應的軟件即可,“./configure”表示執行當前目錄下的configure腳本文件,不同的應用程序其配置參數會存在區別,具體配置參數可以在源代碼目錄中執行“./configure --help”進行查看,但是有一個“--prefix”參數卻是大多數開源軟件所通用的,該配置參數用于指定軟件包安裝的目標文件夾。
[root@justin nagios-4.0.1]# ./configure -h `configure' configures this package to adapt to many kinds of systems. Usage: ./configure [OPTION]... [VAR=VALUE]... ... Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local/nagios] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] ... Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] ... Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-nagios-user=<user> sets user name to run nagios --with-nagios-group=<grp> sets group name to run nagios --with-command-user=<user> sets user name for command access --with-command-group=<grp> sets group name for command access ... Report bugs to the package provider. [root@justin nagios-4.0.1]#
編譯---make
將源代碼文件轉變為二進制可執行程序,編譯的過程主要是根據makefile文件中的配置信息,將源代碼編譯、連接成可執行程序
檢測---make test / make check
顧名思義,這一步就是對上一步 make 的檢查了,要確保 make 是沒有錯誤的,也就是這一步的 test、check要全部是 OK 的,error 為0;這步可省略
安裝---make install
編譯完成以后,就可以執行“make install”命令將軟件的執行程序、配置文件等相關文件復制到Linux系統中了,即應用程序的最后“安裝”過程
三、源碼編譯安裝程序的卸載
很多source的Makefile都有寫uninstall規則,如果原先的source還在,可直接在Souce里make uninstall&&make clean,然后重新configure......如果沒有uninstall規則一句一句看Makefile里install部分他都干了些什么,然后挨個刪除
編譯安裝ntfs-3g
[root@justin src]# wget http://tuxera.com/opensource/ntfs-3g_ntfsprogs-2013.1.13.tgz [root@justin src]# tar zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz -C /usr/local/ [root@justin src]# cd /usr/local/ntfs-3g_ntfsprogs-2013.1.13 [root@justin ntfs-3g_ntfsprogs-2013.1.13]# yum -y install gcc [root@justin ntfs-3g_ntfsprogs-2013.1.13]# ./configure --prefix=/usr/local/ntfs [root@justin ntfs-3g_ntfsprogs-2013.1.13]# make && make install [root@justin ntfs-3g_ntfsprogs-2013.1.13]# ntfs-3g ntfs-3g: No device is specified. ntfs-3g 2013.1.13 integrated FUSE 27 - Third Generation NTFS Driver Configuration type 1, XATTRS are on, POSIX ACLS are off Copyright (C) 2005-2007 Yura Pakhuchiy Copyright (C) 2006-2009 Szabolcs Szakacsits Copyright (C) 2007-2012 Jean-Pierre Andre Copyright (C) 2009 Erik Larsson Usage: ntfs-3g [-o option[,...]] <device|p_w_picpath_file> <mount_point> Options: ro (read-only mount), windows_names, uid=, gid=, umask=, fmask=, dmask=, streams_interface=. Please see the details in the manual (type: man ntfs-3g). Example: ntfs-3g /dev/sda1 /mnt/windows News, support and information: http://tuxera.com [root@justin ntfs-3g_ntfsprogs-2013.1.13]#
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。