天天看點

Linux 學習記錄五(軟體的安裝更新).

一、gcc

gcc是Linux上面最标準的C語言的編譯程式,用來源代碼的編譯連結。

gcc -c hello.c 編譯産生目标檔案hello.o

gcc -O hello.c 編譯産生目标檔案,并進行優化

gcc -o hello hello.c 生成hello這個可執行的二進制檔案

缺點:指令的備援性,如果 C 語言程式中包含對其他函數或者程式的引用,那麼其他程式也要編譯成目标檔案,然後一起編譯成可執行檔案,才能運作成功。一個大的程式引用是非常多的,是以用gcc來編譯,顯得很備援。

二、make

用make進行宏編譯,make的功能是簡化編譯過程中所下達的指令,如果編譯完成之後,修改了某個原始碼檔案,則make隻會去更新這個檔案,其他的檔案不會被改動。要使用make指令,是因為事先編寫 好的 makefile 這個檔案。然後make指令安裝這個檔案編譯連結,大大簡化了編譯的步驟。

makefile的基本文法:

Linux 學習記錄五(軟體的安裝更新).
Linux 學習記錄五(軟體的安裝更新).

makefile變量的基本文法:

  • 變量和變量内容之間以=隔開,同時兩邊可以具有空格
  • 變量左邊不可以有tab
  • 變量和變量的内容在=兩邊不能具有:
  • 在習慣上變量最好以 大寫字母 為主
  • 運用變量時 以${變量} 或 $(變量)使用
  • shell的環境變量是可以被套用的,例如提到的CFLAGS這個變數
  • 在指令模式中也可以給予變量

$@ 代表目前的目标

三、Tarball

安裝的基本步驟:

Linux 學習記錄五(軟體的安裝更新).

  1、一般解壓源代碼到/usr/local/src 檔案夾中

  2、./configure --prefix=/usr/local/ntp --enable-all-clocks --enable-parse-clocks 在目标檔案夾中生成makefile檔案

  3、make clean 先清除也許打包的時候編譯的目标檔案

  4、make 編譯成二進制檔案

  5、make install 安裝檔案

四、rpm

軟體安裝的相關資訊都被寫入 /var/lib/rpm/ 中,我們查詢是否有軟體更新的需求,版本的比較也是來源于這個資料庫。rpm安裝軟體最大的問題就是軟體的相依屬性問題,如果關聯的軟體沒有安裝,那麼該軟體也不能安裝。

rpm安裝軟體并檢視安裝資訊(安裝到自定義路徑): rpm -ivh 軟體名稱 (--prefix /usr/local)

rpm 測試此軟體是否具有相依性: rpm -ivh 軟體名稱 --test

rpm更新軟體(軟體存在,予以更新;軟體不存在,予以安裝): rpm -Uvh 軟體名稱

rpm更新軟體(軟體存在,予以更新;軟體不存在,不予以安裝): rpm -Fvh 軟體名稱

rpm查詢軟體:

Linux 學習記錄五(軟體的安裝更新).

列出目前系統上面所有可能被更改過的檔案:rpm -Va

重建rpm資料庫: rpm --rebuilddb 

五、yum

yum 是目前Linux最友善的軟體管理工具,它比起rpm來可以自動處理軟體的相依屬性問題,以解決軟體的安裝、解除安裝、更新的問題.

yum 查詢的功能:

Linux 學習記錄五(軟體的安裝更新).

列出目前伺服器上可供本機進行更新的軟體有哪些:yum list updates

檢視yum源清單:yum repolist

安裝軟體:yum install 軟體名稱

更新軟體:yum update 軟體名稱

解除安裝軟體:yum remove 軟體名稱

修改yum的源和配置檔案:vim /etc/yum.repos.d/CentOS-Base.repo

删除所有軟體庫的相關資料:yum clean all

将已下載下傳的軟體檔案删除:yum clean packages

将下載下傳的軟體檔案頭删除:yum clean headers

yum的軟體群組的功能:

Linux 學習記錄五(軟體的安裝更新).

備注:軟體群組的安裝預設是不安裝 optional 軟體的,如果,想要安裝的話需要修改配置檔案 vim /etc/yum.conf ,在檔案中新增一行 group_package_types=default,mandatory,optional

全系統自動更新所需要更新的軟體

yum -y update      

修改預設yum源為國内的阿裡雲yum源。官方的yum源在國内通路效果不佳,需要改為國内比較好的阿裡雲或者網易的yum源:

#下載下傳wget
yum install -y wget
#備份目前的yum源
mv /etc/yum.repos.d /etc/yum.repos.d.backup
#建立空的yum源設定目錄
mkdir /etc/yum.repos.d
#下載下傳阿裡雲的yum源配置
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo      

然後,重建緩存:

yum clean all
yum makecache