Linux 笔记 - 第九章 Linux 中软件的安装
博客地址:http://www.moonxy.com
一、前言
在 Linux 系統中,應用程序的軟件包主要分為兩種:
1)第一種是二進制的可執行軟件包,也就是解開包后就可以直接運行。在 Windows 中幾乎所有的軟件包都是這種類型,類似于 exe ,安裝完這個程序后就可以使用,但你看不到源代碼,而且下載時要注意這個軟件是否是你所使用的平臺,否則將無法正常安裝。
2)第二種是源代碼軟件包,解開包后,你還需要使用編譯器將其編譯成為可執行文件。這在 Windows 系統中幾乎是沒有的,因為 Windows 的思想是不開放源程序的。
通常,用 tar 打包的,大多是源代碼軟件包,簡稱源碼包;而用 rpm、dpkg 打包的則常是可執行程序。一般來說,自己動手編譯源代碼能夠更具靈活性,因為源代碼包在編譯時可以附加額外的選項,但也容易遇到各種問題。而相對來說,下載那些可執行程序包,反而是更容易完成軟件的安裝,當然那樣靈活性就差多了。所以一般一個軟件總會提供多種打包格式的安裝程序的,你可以根據自己的情況來選擇。
二、使用 RPM 工具管理 rpm 軟件包
2.1?RPM 工具
RPM 是 RedHat Package Manager 的縮寫,由 RedHat 公司開發。它是以一種數據庫記錄的方式來將我們所需要的套件安裝到 Linux 主機的一套管理程序。也就是說,我們的 Linux 系統中存在著一個關于 RPM 的數據庫,它記錄了安裝的包以及包與包之間的依賴關系。RPM 包是預先在 Linux 系統中編譯并打包的文件,安裝非常快捷。我們可以將 Linux 系統安裝盤放入光驅,然后將光驅掛載到 /mnt/cdrom 目錄下,然后進入 /mnt/cdrom/Packages 目錄,即可查看到需要 .rpm 文件,這些就是 RPM 包。
[root@ryan ~]# ls /mnt/cdrom CentOS_BuildTag isolinux RPM-GPG-KEY-CentOS-Debug-6 EFI Packages RPM-GPG-KEY-CentOS-Security-6 EULA RELEASE-NOTES-en-US.html RPM-GPG-KEY-CentOS-Testing-6 GPL repodata TRANS.TBL images RPM-GPG-KEY-CentOS-6 [root@ryan ~]# ls /mnt/cdrom/Packages |head 389-ds-base-1.2.11.15-74.el6.x86_64.rpm 389-ds-base-libs-1.2.11.15-74.el6.x86_64.rpm abrt-2.0.8-40.el6.centos.x86_64.rpm abrt-addon-ccpp-2.0.8-40.el6.centos.x86_64.rpm abrt-addon-kerneloops-2.0.8-40.el6.centos.x86_64.rpm abrt-addon-python-2.0.8-40.el6.centos.x86_64.rpm abrt-cli-2.0.8-40.el6.centos.x86_64.rpm abrt-desktop-2.0.8-40.el6.centos.x86_64.rpm abrt-gui-2.0.8-40.el6.centos.x86_64.rpm abrt-libs-2.0.8-40.el6.centos.x86_64.rpm每一個 rpm 包的名稱都是由 "-" 和 "." 分成了若干部分。比如"abrt-cli-2.0.8-40.el6.centos.x86_64.rpm"包中,"abrt-cli-2.0.8-40.el6.centos.x86_64.rpm"為包全名,"abrt-cli"為軟件名,"2.0.8"為版本號,"40.el6.centos"為發布版本號,"x86_64"為運行平臺,"rpm"為軟件包類型。常見的運行平臺有 i386、i586、i686 和 x86_64。目前 CPU 分為32位和64位,i386、i586、i686 均為32位平臺,x86_64 則為64位平臺,如果平臺號為 noarch,說明這個 rpm 包沒有硬件平臺限制。
2.2 安裝 rpm 包(-ivh)
# rpm -ivh <rpm package full name>
選項:
-i:--install,表示安裝;
-v:顯示指令執行過程;
-h:--hash,套件安裝時列出標記,即顯示安裝進度;
有時候要安裝的包里有一些文件可能會覆蓋現有的文件,缺省時這樣的情況下是無法正確安裝的,可以用 # rpm --force -i 強制安裝即可。
2.3 升級 rpm 包(-Uvh)
# rpm -Uvh <rpm package full name>
-U:--Upgrade,升級指定套件;
2.4 卸載 rpm 包(-e)
# rpm -e <rpm package software name>
選項:
-e:--erase,刪除指定的套件;
2.5 查詢某個包是否被安裝(-q)
# rpm -q <rpm package full/software name>
[root@ryan ~]# rpm -q urlview urlview-0.9-7.el6.x86_64 [root@ryan ~]# rpm -q urlview-0.9-7.el6.x86_64 urlview-0.9-7.el6.x86_642.6 列出所有已經安裝的 rpm package(-qa)
# rpm -qa
選項:
-q:使用詢問模式;
-a:查詢所有套件;
2.7 顯示某個套件的相關信息(-qi)
# rpm -qi <rpm package full/software name>
選項:
此處的 -i 選項表示顯示套件的相關信息;
2.8 顯示套件的文件列表,即安裝文件(-ql)
# rpm -ql <rpm package full/software name>
選項:
-l:--list,顯示套件的文件列表;
2.9 列出某個文件屬于哪個 rpm 包(-qf)
# rpm -qf 文件的絕對路徑
選項:
-f:--file,擁有指定文件的套件;
需要注意的是,卸載包的時候,后面使用的是軟件名,而不是軟件包全名。
例如,要安裝 software-1.2.3-1.i386.rpm 這個包時,應執行:
# rpm –ivh software-1.2.3-1.i386.rpm
而當卸載時,則應執行:
# rpm –e software
三、使用 yum 工具管理 rpm 軟件包
3.1 yum 工具
yum(Yellow dog Updater, Modified)是一個在 Fedora、RedHat、CentOS 以及 SUSE 中的 Shell 前端軟件包管理器?;?RPM 包管理,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟件包,無須繁瑣地一次次下載、安裝。
RPM 包的安裝有個很大的缺點就是文件的關聯性太強,有時裝一個軟件要安裝很多其他依賴的軟件包,很麻煩。所以為此 RedHat 開發了 yum 工具,它可以徹底解決這個關聯性的問題,很方便,只要配置兩個文件即可安裝,安裝方法是:yum [-y] install < rpm package software name> 或 yum install [-y] < rpm package software name>。
CentOS 下執行 yum install xxx 后,系統會 從yum 源下載rpm,將 rpm 放置到緩存目錄下:/var/cache/yum/,yum 源的不同則下載后存在的路徑也有所不同,通常都是存放在 packages 目錄下,如 /var/cache/yum/x86_64/6/base/packages,此處的 base 也可以是 updates、extras 等,表示來自不同的源。
工作機制:當用戶要安裝一個程序包管理器時,yum接收到用戶的命令后,通過一個配置文件找到一個訪問路徑即 URL 指向遠程文件服務器的內容;當 yum 客戶端確認要安裝程序包時,yum 服務端倉庫會發來一個文件列表即元數據信息,存在本地的緩存區域 cache,讀取要安裝的程序包和分析依賴關系,查詢本地已安裝的程序包,再去文件服務器倉庫下載沒安裝的程序包,下載完先緩存在本地,安裝完后,自動刪除已安裝完的程序包;元數據一般不刪除,元數據是文本文件,校驗碼可解決元數據的更新問題;文件服務器是 C/S 架構。
簡單的說:rpm 只能安裝已經下載到本地機器上的 rpm 包。而 yum 能在線下載并安裝 rpm 包,能更新系統,且還能自動處理包與包之間的依賴問題,這個是 rpm 工具所不具備的。
3.2 yum 列出所有可用的 rpm(list)
# yum list
[root@ryan ~]# yum list |head Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile* base: mirrors.nwsuaf.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com Installed Packages ConsoleKit.x86_64 0.4.1-6.el6 @anaconda-CentOS-201605220104.x86_64/6.8 ConsoleKit-libs.x86_64 0.4.1-6.el6 @anaconda-CentOS-201605220104.x86_64/6.8 ConsoleKit-x11.x86_64 0.4.1-6.el6 @anaconda-CentOS-201605220104.x86_64/6.8 DeviceKit-power.x86_64 014-3.el6 @c6-mediaExiting on Broken Pipe列表中最左側是RPM包名,中間是版本信息,最右側顯示的是安裝源,如果以@開頭,表示已經安裝(installed package),否則表示還未安裝(availiable package)。
3.3 yum 搜索 rpm 包(search)
# yum search <rpm package software name>
[root@ryan ~]# yum search 'urlview' Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile* base: mirrors.nwsuaf.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com ========================================================== N/S Matched: urlview ========================================================== urlview.x86_64 : URL extractor/launcherName and summary matches only, use "search all" for everything. [root@ryan ~]# yum search 'urlview-0.9-7.el6.x86_64' Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile* base: mirrors.nwsuaf.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com Warning: No matches found for: urlview-0.9-7.el6.x86_64 No Matches found注意,使用的是軟件名,而不是軟件包全名
# yum list |grep 'software name'
[root@ryan ~]# yum list |grep 'urlview' urlview.x86_64 0.9-7.el6 base3.4 yum 安裝 rpm 包(install)
# yum install [-y] <rpm package software name>
-y 選項表示系統不詢問用戶是否安裝,即與用戶不交互;
[root@ryan ~]# yum install -y urlview Loaded plugins: fastestmirror, refresh-packagekit Setting up Install Process Loading mirror speeds from cached hostfile* base: mirrors.nwsuaf.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com Resolving Dependencies --> Running transaction check ---> Package urlview.x86_64 0:0.9-7.el6 will be installed --> Finished Dependency ResolutionDependencies Resolved==========================================================================================================================================Package Arch Version Repository Size ========================================================================================================================================== Installing:urlview x86_64 0.9-7.el6 base 24 kTransaction Summary ========================================================================================================================================== Install 1 Package(s)Total download size: 24 k Installed size: 42 k Downloading Packages: urlview-0.9-7.el6.x86_64.rpm | 24 kB 00:00 warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Importing GPG key 0xC105B9DE:Userid : CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>Package: centos-release-6-8.el6.centos.12.3.x86_64 (@anaconda-CentOS-201605220104.x86_64/6.8)From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running TransactionInstalling : urlview-0.9-7.el6.x86_64 1/1Verifying : urlview-0.9-7.el6.x86_64 1/1Installed:urlview.x86_64 0:0.9-7.el6Complete!3.5 升級 rpm 包(update)
# yum update [-y] <rpm package software name>
[root@ryan ~]# yum update -y urlview Loaded plugins: fastestmirror, refresh-packagekit Setting up Update Process Loading mirror speeds from cached hostfile* base: mirrors.nwsuaf.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com No Packages marked for Update此處顯示沒有對應的 urlview 的更新包。
3.6 卸載 rpm 包(remove)
# yum remove [-y] <rpm package software name>
[root@ryan ~]# yum remove -y urlview Loaded plugins: fastestmirror, refresh-packagekit No such command: revome. Please use /usr/bin/yum --help [root@ryan ~]# yum remove -y urlview Loaded plugins: fastestmirror, refresh-packagekit Setting up Remove Process Resolving Dependencies --> Running transaction check ---> Package urlview.x86_64 0:0.9-7.el6 will be erased --> Finished Dependency ResolutionDependencies Resolved==========================================================================================================================================Package Arch Version Repository Size ========================================================================================================================================== Removing:urlview x86_64 0.9-7.el6 @base 42 kTransaction Summary ========================================================================================================================================== Remove 1 Package(s)Installed size: 42 k Downloading Packages: Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running TransactionErasing : urlview-0.9-7.el6.x86_64 1/1Verifying : urlview-0.9-7.el6.x86_64 1/1Removed:urlview.x86_64 0:0.9-7.el6Complete!3.7 關于 yum 的其他功能點
1)yum工具安裝rpm包時,首先得下在這個rpm包,然后再去安裝,有時候可能只需要下載而并不安裝。下載 rpm 包而不安裝的命令為:--downloadonly
# yum install [y] <rpm package software name> --downloadonly
2)自定義下載目錄的命令為:--downloaddir=/usr/local/src
# yum install [y] <rpm package software name> --downloaddir=/usr/local/src
3)對于已經安裝過的rpm包,使用yum install [y] < rpm package software name> --downloadonly不起作用,根本就下載不下來,但是可以改為reinstall命令:reinstall
# yum reinstall [y] <rpm package software name> --downloadonly
3.8 制作本地光盤 yum 源
有時候,Linux 系統不能聯網,此時就不能使用互聯網上的 yum 源了,這時我們可以自己在 Linux 系統上使用光盤制作 yum 源。
1)掛載光盤到掛載點
# mount /dev/cdrom /mnt/cdrom
[root@ryan ~]# mount /dev/cdrom /mnt/cdrom mount: block device /dev/sr0 is write-protected, mounting read-only2)刪除 /etc/yum.repos.d 目錄下的.repo文件,最好先備份到其他目錄,再刪除
# cp -r /etc/yum.repos.d /etc/yum.repos.d_bak
# rm -rf /etc/yum.repos.d/*
3)創建新的源文件 dvd.repo,文件必須以 .repo 結尾
# vim /etc/yum.repos.d/dvd.repo [c6-media] name=dvd baseurl=file:///mnt/cdrom gpgcheck=0 enabled=14)刷新元數據緩存
[root@ryan yum.repos.d]# yum makecache Loaded plugins: fastestmirror, refresh-packagekit Loading mirror speeds from cached hostfile c6-media | 4.0 kB 00:00 ... c6-media/other_db | 2.8 MB 00:00 ... Metadata Cache Created然后就可以使用 yum 命令安裝需要的軟件包了。
3.9 下載 yum 國內元數據配置
有時候系統自帶的 yum 源下載速度很慢,可以配置成國內的鏡像源地址。
比如當前系統是 CentOS7 :
1)進入元配置文件目錄
# cd /etc/yum.repos.d/
2)備份 CentOS-Base.repo
# mv CentOS-Base.repo CentOS-Base.repo.bak
3)下載元配置文件
阿里云 yum 源文件
官方地址:http://mirrors.aliyun.com/
# wget http://mirrors.aliyun.com/repo/Centos-7.repo
網易 yum 源文件
官方地址:http://mirrors.163.com/
# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
4)更新緩存
# yum clean all
# yum makecache
3.10 關于 yum 緩存
1)關于 yum 緩存
默認情況下,當前版本的 yum 在成功下載和安裝軟件包后,會把下載的文件刪掉。這樣可以減少 yum 占用的磁盤空間。你可以打開緩存,這樣 yum 將在緩存目錄保留下載到的文件。
緩存帶來很多好處:
yum 的性能可以提高;你可以離線運行 yum 操作,只使用緩存;你可以復制緩存中的軟件包以備用。
默認情況下,yum 在 /var/cache/yum/ 目錄保存臨時文件,每個倉庫都有自己的子目錄。倉庫目錄中 packages 子目錄包含了緩存的軟件包。例如,目錄 /var/cache/yum/*/xxx/*/packages/ 包含從 xxx 倉庫下載的軟件包。
/etc/yum.conf 文件可以設置下載緩存的目錄:
cachedir=/var/cache/yum/$basearch/$releasever
2)啟用 yum 緩存
要配置 yum 保留已下載的文件而不是刪除,設置 /etc/yum.conf 中的 keepcache 選項為 1:
keepcache=1
打開緩存后,每個 yum 操作都可能從倉庫下載軟件包數據。要保證緩存包含了軟件包數據,在啟用緩存后運行一個操作,例如 list 或 search 來下載軟件包數據而不影響系統。
3)在只使用緩存的模式下使用 yum
要在沒有網絡的情況下執行 yum,只要啟用了緩存,就可以用 -C 選項。這樣 yum 就不會檢查網絡上的倉庫,只使用緩存。在這個模式中,yum 只能安裝已下載并緩存的軟件包。
清除 yum 緩存的命令:
# yum clean
4)yum 配置文件
可以在 /etc/yum.conf 中定義 rpm 包的緩存目錄(cachedir)和是否啟用緩存(keepcache)等。
[root@ryan src]# cat /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever # yum 下載的 rpm 包的緩存目錄 keepcache=0 #緩存是否保存,1保存,0不保存 debuglevel=2 #調試級別(0-10),默認為2 logfile=/var/log/yum.log #yum的日志文件所在的位置 exactarch=1 #在更新的時候,是否允許更新不同版本的RPM包,比如是否在i386上更新i686的RPM包 obsoletes=1 #這是一個update的參數,具體請參閱yum(8),簡單的說就是相當于upgrade,允許更新陳舊的RPM包 gpgcheck=1 #是否檢查GPG(GNU Private Guard),一種密鑰方式簽名 plugins=1 #是否允許使用插件,默認是0不允許,但是我們一般會用yum-fastestmirror這個插件 installonly_limit=5 #允許保留多少個內核包 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release # 指定一個軟件包,yum會根據這個包判斷你的發行版本,下載的時候只下載這種發行版本# This is the default, if you make this bigger yum won't see if the metadata # is newer on the remote and so you'll "gain" the bandwidth of not having to # download the new metadata and "pay" for it by yum not having correct # information. # It is esp. important, to have correct metadata, for distributions like # Fedora which don't keep old packages around. If you don't like this checking # interupting your command line usage, it's much better to have something # manually check the metadata once an hour (yum-updatesd will do this). # metadata_expire=90m# PUT YOUR REPOS HERE OR IN separate files named file.repo # in /etc/yum.repos.d四、使用 dpkg 工具管理 deb 軟件包
4.1 dpkg 工具
dpkg 是 Debian Linux 提供的一個包管理器,它與 RPM 工具十分類似。但由于 RPM 出現得更早,所以在各種發行版本的 Linux 中都很常見。而 debian 的包管理器 dpkg 則只出現在 Debian 系列的 Linux 中,比如 Ubuntu、Linux Mint 等版本中,其它 Linux 版本一般都沒有。
4.2?安裝 deb 包(-i)
# dpkg –i <deb 的軟件包名>
如:dpkg –i software-1.2.3-1.deb
4.3 卸載?deb 包(-e)
#?dpkg –e <軟件名>
如:dpkg –e software
4.4?查詢 deb 包(-l)
查詢當前系統安裝的軟件包:
# dpkg –l '*軟件包名*'
如:dpkg –l '*software*'
五、使用 apt 工具安裝 deb 軟件包
5.1 apt 工具
apt(Advanced Packaging Tool)是 Linux 發行版 Debian 下的一款安裝包管理工具,是一個 C/S 結構的工具。只要系統可以上網,只需要用 # apt-cache search 查找軟件,用 # apt-get install 安裝軟件等。
5.2 apt 常用命令
apt-get 是 debian,ubuntu發行版的包管理工具,與紅帽中的yum工具非常類似;apt-get 命令一般需要 root 權限執行,所以一般跟著 sudo 命令例 sudo apt-get xxxx;
apt-get install softwarename:安裝一個新軟件包,下載以及所有依賴的包,同時進行包的安裝或升級。如果某個包被設置了 hold (停止標志),就會被擱在一邊(即不會被升級);
aptitude:詳細查看已安裝或可用的軟件包等。與apt-get類似,aptitude 可以通過命令行方式調用,但僅限于某些命令——最常見的有安裝和卸載命令。由于 aptitude 比 apt-get 了解更多信息,可以說它更適合用來進行安裝和卸載;
apt-get remove softwarename:卸載一個已安裝的軟件包(保留配置文件),移除以及任何依賴這個包的其它包;
apt-get --purge remove softwarename:卸載一個已安裝的軟件包(刪除配置文件);
dpkg --force-all --purge softwarename:有些軟件很難卸載,而且還阻止了別的軟件的應用,就可以用這個,不過有點冒險;
apt-get autoremove:因為apt會把已裝或已卸的軟件都備份在硬盤上,所以如果需要空間的話,可以讓這個命令來刪除你已經刪掉的軟件;
apt-get autoclean:定期運行這個命令來清除那些已經卸載的軟件包的 .deb 文件。通過這種方式,可以釋放大量的磁盤空間。如果需求十分迫切,可以使用 apt-get clean 以釋放更多空間。這個命令會將已安裝軟件包裹的.deb文件一并刪除;
apt-get clean:這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的;
apt-get update:更新源,升級來自 Debian 鏡像的包列表,如果你想安裝當天的任何軟件,至少每天運行一次,而且每次修改了 /etc/apt/sources.list 后必須執行;
apt-get upgrade:更新所有已安裝的軟件包,升級所有已經安裝的包為最新可用版本。不會安裝新的或移除老的包;
apt-get dist-upgrade:將系統升級到新版本;
apt-cache search string:在軟件包列表中搜索字符串;
apt-cache showpkg pkgs:顯示軟件包信息;
apt-cache stats:查看庫里有多少軟件;
apt-cache dumpavail:打印可用軟件包列表;
apt-cache show pkgs:顯示軟件包記錄,類似于 dpkg -print-avail;
apt-cache pkgnames:打印軟件包列表中所有軟件包的名稱,需要定期運行這一命令以確保您的軟件包列表是最新的;
注意:
aptitude 與 apt-get 一樣,是 Debian 及其衍生系統中功能極其強大的包管理工具基于大名鼎鼎的APT機制, 整合了 dselect 和 apt-get 的所有功能, 并提供的更多特性,特別是在依賴關系處理上。與 apt-get 不同的是,aptitude 在處理依賴問題上更佳一些。舉例來說,aptitude在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為干凈。推薦使用 aptitude 命令來代替 apt-get,下載或者刪除依賴包的時候 aptitude 要比 apt-get 更好。不過 aptitude 和 apt-get 不能混用,要不然互相都不知道對方做了什么操作。
簡單的說: dpkg 只能安裝已經下載到本地機器上的 deb 包。apt-get 能在線下載并安裝 deb 包,能更新系統已安裝的包,且還能自動處理包與包之間的依賴問題,這個是 dpkg 工具所不具備的。
六、安裝源碼包
安裝源碼包,首先需要我們把源代碼編譯成可執行的二進制文件。常見的源碼包一般都是用 C 語言開發的,C 語言的編譯器稱為 gcc,利用 gcc 可以把 C 語言編譯成可執行的二進制文件。
6.1 解壓源碼包
首先,將安裝文件拷貝至自己的家目錄中。例如,如果你是以 root 身份登錄上的,就將軟件拷貝至 /root 中。通常我們習慣于將源碼包拷貝到 /usr/local/src 目錄下,便于統一管理。
命令為:
# cp filename.tar.gz /usr/local/src
由于該文件是被壓縮并打包的,所以需要對其解壓縮。
命令為:?
# tar xvzf filename.tar.gz
執行該命令后,安裝文件按路徑,解壓縮在當前目錄下。用ls命令可以看到解壓縮后的文件。通常在解壓縮后產生的文件中,有名稱為"INSTALL" 或 "README"的幫助文件,該文件為純文本文件,詳細講述了該軟件包的安裝方法。
6.2 定制及依賴檢查(./configure)
對于多數需要編譯的軟件,其安裝的方法大體相同。執行解壓縮后產生的一個名為configure的可執行腳本程序。它是用于檢查系統是否有編譯時所需的庫,以及庫的版本是否滿足編譯的需要等安裝所需要的系統信息,為隨后的編譯工作做準備。
命令為:?
# ./configure --prefix=/usr/local/apache2--prifix 表示自定義軟件包安裝目錄。
6.3 編譯(make)
如果檢查過程中,發現有錯誤,configure將給予提示,并停止檢查。你可以跟據提示對系統進行配置。再重新執行該程序。檢查通過后,將生成用于編譯 的 Makefile 文件。此時,可以開始進行編譯了。編譯的過程視軟件的規模和計算機的性能的不同,所耗費的時間也不同。
命令為:?
# make6.4 安裝(make install)
成功編譯后,鍵入如下的命令開始安裝。
命令為:
# make install每一步執行之后,可以輸入命令 # echo $? 來驗證是否執行成功,如果驗證結果是 0,表示執行成功,可以繼續執行下一步,否則查看報錯信息或查看當前目錄下的 config.log 來得到相關的信息。
[root@ryan ~]# echo $? 0七、不需要安裝的軟件
比如在 Linux 機器上安裝壓縮程序 rar 和解壓程序 unrar,此處的安裝其實為下載后解壓即可。由于要使用 wget 從服務器上下載 rar 的軟件包,如果沒有 wget 工具,先安裝 wget。
1)安裝 wget
wget 是一個從網絡上自動下載文件的自由工具。它支持 HTTP,HTTPS 和 FTP 協議,可以使用 HTTP 代理。所謂的自動下載是指,wget 可以在用戶退出系統之后在后臺繼續運行。這意味這你可以登錄系統,啟動一個 wget 下載任務,然后退出系統,wget 將在后臺執行直到任務完成,相對于其它大部分瀏覽器在下載大量數據時需要用戶一直的參與,這省去了極大的麻煩。
命令為:
# yum install -y wget
[root@ryan src]# wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz -bash: wget: command not found [root@ryan src]# yum install -y wget2)下載 rar 壓縮包
命令為:
# wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz
[root@ryan src]# wget https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz --2018-03-24 19:09:58-- https://www.rarlab.com/rar/rarlinux-x64-5.5.0.tar.gz Resolving www.rarlab.com... 5.135.104.98 Connecting to www.rarlab.com|5.135.104.98|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 536028 (523K) [application/x-gzip] Saving to: “rarlinux-x64-5.5.0.tar.gz”100%[====================================================================================================================>] 536,028 65.2K/s in 8.1s2018-03-24 19:10:09 (64.6 KB/s) - “rarlinux-x64-5.5.0.tar.gz” saved [536028/536028]3)解壓包
命令為:
# tar -xzvf rarlinux-x64-5.5.0.tar.gz
[root@ryan src]# tar -xzvf rarlinux-x64-5.5.0.tar.gz rar/ rar/order.htm rar/acknow.txt rar/readme.txt rar/default.sfx rar/license.txt rar/rarfiles.lst rar/whatsnew.txt rar/makefile rar/rar rar/unrar rar/rar.txt4)創建軟鏈接
[root@ryan src]# ln -s /usr/local/src/rar/rar /usr/local/bin/rar [root@ryan src]# ln -s /usr/local/src/rar/unrar /usr/local/bin/unrar此時,/usr/local/src/rar? 下的 rar 命令和 unrar 命令就已經在 /usr/local/bin 下創建了軟鏈接。
[root@ryan src]# ll /usr/local/bin/rar lrwxrwxrwx. 1 root root 22 Mar 24 19:21 /usr/local/bin/rar -> /usr/local/src/rar/rar [root@ryan src]# ll /usr/local/bin/unrar lrwxrwxrwx. 1 root root 24 Mar 24 19:21 /usr/local/bin/unrar -> /usr/local/src/rar/unrar之后就可以直接使用 rar 和 unrar 命令了。
附錄
參考文章:
https://www.cnblogs.com/jdxn/p/6755136.html
https://blog.csdn.net/mrliqifeng/article/details/63255855
轉載于:https://www.cnblogs.com/cnjavahome/p/8627474.html
總結
以上是生活随笔為你收集整理的Linux 笔记 - 第九章 Linux 中软件的安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前后端分离使用 Token 登录解决方案
- 下一篇: vivado下创建基本时序周期约束