天天看點

Linux之程式包管理yum使用和編譯安裝

yum指令及倉庫建立與配置

YUM

  原理

  安裝、解除安裝、查詢、更新、檢查,本地緩存、重裝、降級、曆史、擷取幫助

倉庫

  變量、事務、URL、開銷、鏡像、中繼資料存儲方式及組成

createrepo作用、指令、lftp指令

編譯安裝

 目的

    原理

    開發工具及開發環境

    編譯後的處理

擷取程式包源代碼的途徑

  Redhat二次發行版 Yellow Dog Linux,上使用的yum(Yellowdog Update Modifier),由yellow dog 研發

 yum指令的工作原理

<a href="https://s3.51cto.com/wyfs02/M00/9E/A6/wKioL1mUF__BdMmnAAA6TZqFvo4652.png-wh_500x0-wm_3-wmp_4-s_3242385551.png" target="_blank"></a>

  1、接收使用者指令

  2、yum扮演為用戶端,請求啟用的倉庫(yum.repos.d/*.repo)中URL對應的檔案伺服器,下載下傳中繼資料(repodata),儲存至緩存中。

  3、yum指令分析中繼資料,找出将要安裝的程式包所依賴的程式包且在系統中沒有安裝的程式包清單,并向檔案伺服器請求下載下傳程式包,儲存至緩存中。

  4、根據緩存中的程式包,先安裝被依賴的程式包。

  5、安裝後,删除程式包,保留中繼資料。

  1、接收指令

  2、請求下載下傳repodata目錄中中繼資料校驗碼:repomd.xml檔案

  3、比對repomd.xml

  相同:用本地的中繼資料

  不相同:重複首次安裝過程

  Yum作用

  1、rpm前端管理工具,自動解決程式包安裝/解除安裝時的依賴關系。

  2、C/S架構:C:yum程式所在的電腦,S:檔案伺服器

  3、基于插件,提供衆多功能,工作機制或設計體系存在問題,安裝過程中半道中止時,下次重新開機yum指令不能夠解決。

  4、dnf指令能夠解決Yum指令存在的問題,使用方法基本同yum

 5、yum支援proxy,color,ssl

 yum指令

擷取幫助: man yum

擷取子指令的幫助:yum help [SUB_COMMAND]

yum [OPTIONS...] [SUB_COMMAND] 

OPTIONS

    -y  互動式詢問,自動回答為yes

    -q  靜默模式,grep , xz , zip,不顯示程式包的依賴資訊

    --nogpgcheck      禁用 GPG 簽名檢查,不檢查完整性和來源合法性

    --disablerepo=REPO  倉庫中如果enabled=1,本次安裝忽略由REPO指定的倉庫

    --enablerepo=REPO   倉庫中如果enabled=0,本次安裝啟用由REPO指定的倉庫

    --noplugins       本次安裝禁用所有插件

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

<code>使用示例</code>

<code>-y</code>

<code>1、不加-y </code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum install zsh</code>

<code>總下載下傳量:2.4 M</code>

<code>安裝大小:5.6 M</code>

<code>Is this ok [y</code><code>/d/N</code><code>]:  将互動式的顯示是否安裝</code>

<code>2、加-y</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum install -y zsh</code>

<code>Downloading packages:</code>

<code>-q</code>

<code>1、不加</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum remove zsh</code>

<code>已加載插件:fastestmirror</code>

<code>正在解決依賴關系</code>

<code>--&gt; 正在檢查事務</code>

<code>---&gt; 軟體包 zsh.x86_64.0.5.0.2-25.el7 将被 删除</code>

<code>--&gt; 解決依賴關系完成</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum -q remove zsh</code>

<code>========================================================================================</code>

<code> </code><code>Package         架構               版本                        源                 大小</code>

<code>正在删除:</code>

<code> </code><code>zsh             x86_64             5.0.2-25.el7                @base             5.6 M</code>

<code>事務概要</code>

<code>移除  1 軟體包</code>

<code>是否繼續?[y</code><code>/N</code><code>]:</code>

<code>依賴關系解決</code>

<code>2、加</code>

<code>--disablerepo=REPO</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum repolist</code>

<code>Loading mirror speeds from cached hostfile</code>

<code> </code><code>* epel: mirrors.neusoft.edu.cn</code>

<code>源辨別                 源名稱                                                     狀态</code>

<code>base                   CentOS-7 - Base - mirrors.aliyun.com                        9,363</code>

<code>epel</code><code>/x86_64</code>            <code>Extra Packages </code><code>for</code> <code>Enterprise Linux 7 - x86_64             11,769</code>

<code>repolist: 21,132</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum --disablerepo=base repolist</code>

<code>repolist: 11,769</code>

<code>--enablerepo=REPO</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum --enablerepo=extras repolist</code>

<code> </code><code>* extras: mirrors.aliyun.com</code>

<code>源辨別                    源名稱                                                  狀态</code>

<code>base                      CentOS-7 - Base - mirrors.aliyun.com                     9,363</code>

<code>epel</code><code>/x86_64</code>               <code>Extra Packages </code><code>for</code> <code>Enterprise Linux 7 - x86_64          11,769</code>

<code>!extras</code><code>/7/x86_64</code>          <code>CentOS-7 - Extras - mirrors.aliyun.com                     449</code>

<code>repolist: 21,581</code>

<code>--noplugins</code>

<code>1、加載插件</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum install zsh-4.3.11-4.el6.centos.2.i686.rpm </code>

<code>2、不加載插件</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum --noplugins install zsh-4.3.11-4.el6.centos.2.i686.rpm </code>

<code>正在檢查 zsh-4.3.11-4.el6.centos.2.i686.rpm: zsh-4.3.11-4.el6.centos.2.i686</code>

SUB_COMMAND

安裝:install,localinstall,groupinstall

    install package ...

    localinstall package ... (centos 5安裝rpm必須)

    groupinstall GROUP ...

   1、直接給出: yum install gcc  預設安裝最新

   2、給出版本: yum install gcc-1.2.3 指定安裝版本

<code>1、檢視目前系統版本:</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># cat /etc/centos-release</code>

<code>CentOS Linux release 7.3.1611 (Core)  說明安裝rpm檔案,用</code><code>install</code><code>即可</code>

<code>2、安裝rpm檔案</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum -y install  zsh-5.0.2-25.el7_3.1.x86_64.rpm </code>

<code>正在檢查 zsh-5.0.2-25.el7_3.1.x86_64.rpm: zsh-5.0.2-25.el7_3.1.x86_64</code>

<code>zsh-5.0.2-25.el7_3.1.x86_64.rpm 将被安裝</code>

<code>....</code>

重裝: reinstall

    reinstall package ...

<code>1、安裝程式包,報錯,已經安裝的程式包</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum -y install zsh-5.0.2-25.el7_3.1.x86_64.rpm </code>

<code>zsh-5.0.2-25.el7_3.1.x86_64.rpm:不更新已安裝的軟體包。</code>

<code>錯誤:無須任何處理</code>

<code>2、重新安裝</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum -y reinstall zsh-5.0.2-25.el7_3.1.x86_64.rpm </code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ls /etc/zsh*</code>

<code>/etc/zshenv</code>  <code>/etc/zshrc</code>  <code>不會生成其他檔案</code>

查詢:list/repolist grouplist info whatprovides

    倉庫資訊:安裝、可用

       repolist [all|enabled|disabled] 預設為enabled(啟用和禁用)

    程式包:

        顯示: list [all|available|installed|extras|obsoletes|recent]  [glob_expr1] ...

        搜尋:search STRING ... (STRING由Glob通配符和純文字字元組成)

        檢視指定CAPABILITY(檔案/功能)由哪個程式包所提供

            whatprovides CAPABILITY

    包内

        資訊: info package ...

<code>yum repolist 顯示啟用 倉庫id 倉庫name 程式包的數量</code>

<code>yum list  包名 release号 倉庫id</code>

<code>yum search yum 搜尋程式包及簡要資訊</code>

<code>yum whatprovides /bin/ls  顯示功能或檔案由哪個倉庫或程式包來提供</code>

<code>yum info yum  類似rpm -q -i 顯示程式包的内容</code>

<code>Name        : yum</code>

<code>Arch        : noarch</code>

<code>Version     : </code><code>3.4</code><code>.</code><code>3</code>

<code>Release     : </code><code>150</code><code>.el7.centos</code>

<code>Size        : </code><code>5.5</code> <code>M</code>

<code>Repo        : installed</code>

<code>From repo   : base</code>

<code>Summary     : RPM </code><code>package</code> <code>installer/updater/manager</code>

<code>URL         : http:</code><code>//yum.baseurl.org/</code>

<code>License     : GPLv2+</code>

<code>Description</code>

解除安裝: remove,groupremove

    remove package ...

    groupremove GROUP ...

<code>[root@izpo45bh60h6bsz ~]</code><code># yum remove yum</code>

更新: update,groupupdate

    update package ...

    groupupdate GROUP ...

<code>1、檢查可用更新</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum --enablerepo=updates check-update</code>

<code>2、更新:</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum --enablerepo=updates update</code>

檢查更新: check-update

    check-update 

降級: downgrade

    downgrade package ...

本地緩存

    清理: clean [headers|packages|metadata|dbcache|plugins|expire-cache|all]

    建構: makecache

<code>1、清理程式包</code>

<code>yum clean packages</code>

<code>2、清理頭檔案</code>

<code>yum clean headers</code>

<code>3、清理中繼資料</code>

<code>yum clean metadata</code>

<code>4、清理插件</code>

<code>yum clean plugins</code>

<code>5、清理過期緩存</code>

<code>yum clean expire-cache</code>

<code>6、清理所有</code>

<code>yum clean all</code>

<code>7、建構緩存</code>

<code>yum makecache</code>

曆史: history [info|list|packages-list|summary|addon-info|redo|undo|rollback|new]

<code>[root@izpo45bh60h6bsz ~]</code><code># yum history  #### 相當于yum history list</code>

<code>Loaded plugins: fastestmirror</code>

<code>ID     | Command line             | Date and </code><code>time</code>    <code>| Action(s)      | Altered</code>

<code>-------------------------------------------------------------------------------</code>

<code>   </code><code>104 | </code><code>install</code> <code>zsh-4.3.11-4.el6 | 2017-08-16 18:44 | Install        |    1   </code>

<code>   </code><code>103 | remove zsh               | 2017-08-16 18:44 | Erase          |    1   </code>

<code>   </code><code>102 | -y reinstall zsh-5.0.2-2 | 2017-08-16 18:24 | Reinstall      |    1   </code>

<code>   </code><code>101 | </code><code>install</code> <code>zsh-5.0.2-25.el7 | 2017-08-16 18:22 | Install        |    1   </code>

<code>   </code><code>100 | --nogpgcheck remove zsh  | 2017-08-16 18:18 | Erase          |    1   </code>

<code>    </code><code>99 | </code><code>install</code> <code>--nogpgcheck zsh | 2017-08-16 18:17 | Install        |    1   </code>

<code>    </code><code>98 | remove --nogpgcheck zsh  | 2017-08-16 18:16 | Erase          |    1   </code>

<code>    </code><code>97 | </code><code>install</code> <code>zsh-4.3.11-4.el6 | 2017-08-16 18:15 | Install        |    1   </code>

<code>    </code><code>96 | remove zsh               | 2017-08-16 18:14 | Erase          |    1   </code>

<code>    </code><code>95 | --nogpgcheck </code><code>install</code> <code>zsh | 2017-08-16 18:13 | Install        |    1   </code>

<code>    </code><code>94 | remove zsh               | 2017-08-16 18:13 | Erase          |    1   </code>

<code>    </code><code>93 | </code><code>install</code> <code>zsh-4.3.11-4.el6 | 2017-08-16 18:12 | Install        |    6  &lt;</code>

<code>    </code><code>92 | </code><code>install</code> <code>-y zsh           | 2017-08-16 18:08 | Install        |    1 &gt;&lt;</code>

<code>    </code><code>91 | </code><code>install</code> <code>createrepo       | 2017-08-16 10:01 | Install        |   56 &gt;&lt;</code>

<code>    </code><code>90 | </code><code>install</code> <code>zsh              | 2017-08-15 11:58 | Install        |   40 &gt;&lt;</code>

<code>    </code><code>89 | </code><code>install</code> <code>zsh-4.3.11-4.el6 | 2017-08-15 11:05 | Install        |    2 &gt; </code>

<code>    </code><code>88 | </code><code>install</code> <code>mdadm            | 2017-08-11 17:14 | Install        |    2   </code>

<code>    </code><code>87 | </code><code>install</code> <code>tigervnc-server  | 2017-07-31 22:24 | Install        |   22 P&lt;</code>

<code>    </code><code>86 | </code><code>install</code> <code>libtermcap-devel | 2017-07-31 15:54 | Install        |    1 &gt;&lt;</code>

<code>    </code><code>85 | -y </code><code>install</code> <code>sendmail mail | 2017-07-31 15:49 | Install        |    4 &gt; </code>

<code>Warning: RPMDB altered outside of yum.</code>

<code>history</code> <code>list</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum history summary</code>

<code>Login user                 | Time                | Action(s)        | Altered </code>

<code>root &lt;root&gt;                | Last day            | E, I, R          |       74</code>

<code>root &lt;root&gt;                | Last week           | Install          |       44</code>

<code>root &lt;root&gt;                | Last 3 months       | E, I, U          |      469</code>

<code>System &lt;</code><code>unset</code><code>&gt;             | Last 6 months       | I, U             |      288</code>

<code>root &lt;root&gt;                | Last 6 months       | I, U             |      206</code>

<code>history</code> <code>summary</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># yum history info</code>

<code>Transaction ID : 104</code>

<code>Begin </code><code>time</code>     <code>: Wed Aug 16 18:44:57 2017</code>

<code>Begin rpmdb    : 100:e66a5c3b4265234fa222836dc108212efe773c48</code>

<code>End </code><code>time</code>       <code>:            18:44:58 2017 (1 seconds)</code>

<code>End rpmdb      : 101:d0ae5b619911556d572b14f912f0be9bdd0a9ba7 **</code>

<code>User           : root &lt;root&gt;</code>

<code>Return-Code    : Success</code>

<code>Command Line   : </code><code>install</code> <code>zsh-4.3.11-4.el6.centos.2.i686.rpm</code>

<code>Transaction performed with:</code>

<code>    </code><code>Installed     rpm-4.11.3-21.el7.x86_64                      @base</code>

<code>    </code><code>Installed     yum-3.4.3-150.el7.centos.noarch               @base</code>

<code>    </code><code>Installed     yum-plugin-fastestmirror-1.1.31-40.el7.noarch @base</code>

<code>Packages Altered:</code>

<code>    </code><code>Install zsh-4.3.11-4.el6.centos.2.i686 @</code><code>/zsh-4</code><code>.3.11-4.el6.centos.2.i686</code>

<code>history</code> <code>info</code>

版本: version

<code>[root@izpo45bh60h6bsz ~]</code><code># yum version  ##rpmdb的版本</code>

<code>Installed: 7</code><code>/x86_64</code>                         <code>101:db92c5ee1a848d4268e09e1b87f10e6808a76af1</code>

<code>Group-Installed: yum                         15:396f07de8170b01350e3ca880e428c054b68573d</code>

<code>version</code>

配置檔案

ini風格: [] 表示一個配置段

擷取幫助:

man的章節: 1: 普通使用者 8:管理者 2:syscall 3:libcall 4:裝置 5:配置檔案 6:game 7:雜項

1)檢視幫助手冊所有的章節: whatis yum

2)檢視幫助: man 5 yum.conf

擷取配置檔案

rpm -q -c yum

yum.conf         ## 所有倉庫通用的配置

yum.repos.d/*.conf  ## 每個倉庫獨有的配置 

配置檔案格式 

<code>yum.conf</code>

<code>[main]      表示主配置段</code>

<code>cachedir    緩存檔案的位置(程式包+中繼資料資訊)</code>

<code>keepcache   緩存使用後是否保留 1保留 0删除</code>

<code>debuglevel  調試級别</code>

<code>logfile     yum安裝程式包的安裝日志檔案路徑</code>

<code>exactarch   是否精确平台比對   1是   0否 (目前rhl6,程式包rhl7能否安裝?)</code>

<code>obsolutes   是否廢棄</code>

<code>gpgcheck    安裝包時是否檢查來源合法性及完整性 1檢查 (yum --nogpgcheck本次不檢查)</code>

<code>plugins     是否支援插件機制   1支援   (yum --noplugins 本次關閉)</code>

<code>installonly_limit  同時安裝幾個程式包</code>

<code>bugtrack_url 追蹤bug的URL</code>

<code>distroverpkg 發行版 版本号 擷取位置: centos / redhat</code>

<code>[repositoryid] 倉庫ID:多個倉庫ID不能相同:base表示安裝CD光牒提供的基本安裝樹</code>

<code>name=          倉庫的名字</code>

<code>fail over method={roundrobin|priority} 故障轉移方法roundrobin: 随機,priority: 從上而下</code>

<code>baseurl=URL     repodata目錄所在的目錄:是倉庫指向的路徑</code>

<code>        </code><code>URL</code>

<code>        </code><code>...</code>

<code>enabled={1|0}       預設啟用</code>

<code>gpgcheck={1|0}       </code>

<code>gpgkey=URL          指向能通路密鑰檔案的通路路徑</code>

<code>repo_gpgcheck={1|0} 是否檢查中繼資料資訊repodata</code>

<code>enablegroups={1|0}  預設啟用,是否支援在此倉庫上使用組批量管理程式包</code>

<code>cost=               設定開銷:預設1000</code>

<code>keepalive           遠端為http1.1時,是否使用保持連接配接</code>

<code>bandwidth           帶寬</code>

<code>username            使用者名</code>

<code>password            密碼</code>

用URL定義倉庫指向,baseurl=URL

URL: schema://伺服器IP或域名/URL路徑(指向一個檔案或目錄檔案)

URL schema: ftp:// http:// https://  nfs:// file:///

變量:簡化、統一使用者配置yum源

    $releasever: 目前OS的發行版的主版本号

    $arch: 平台

    $basearch: 基礎平台(x86平台,統一識别為i386)

    $YUM0-YUM9 自定義變量

開銷:伺服器距離主機的距離,網絡的延遲

鏡像:同類倉庫出現多個時,yum基于插件,同一個倉庫指向一堆服務。不同站點同時提供同類倉庫

程式包選擇:

   1、多個版本時,安裝新的版本。

   2、多個鏡像站點,有相同的程式包,選擇cost低的伺服器

倉庫配置及生成

 倉庫配置

  1、挂載CD光牒

  2、配置倉庫

 倉庫的生成

   抽取rpm包中中繼資料(rpm内部檔案的清單,CAPABILITY資訊),制作repodata檔案,放在repodata檔案中及中繼資料的特征碼。用createrepo指令實作

createrepo指令

<code>createrepo [OPTIONS...] DIR</code>

<code>-o DIR      将repodata目錄輸出至</code>

<code>-x rpmfile ...  将目錄中的rpm包排除</code>

<code>-i rpmfile ...  隻對目錄中的rpm包生成中繼資料及特殊碼</code>

<code>--basedir=DIR</code>

<code># createrepo -o /tmp /root</code>

<code>  </code><code>/tmp/repodata</code>

<code>repomd.xml 存放中繼資料的指紋資訊</code>

  中繼資料的存儲的位置

    壓縮後存儲于檔案

    sqllite接口存儲,便于查詢

<code>1、清空目錄</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ls /tmp</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># </code>

<code>2、建立中繼資料</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># createrepo -o /tmp /root</code>

<code>Spawning worker 0 with 5 pkgs</code>

<code>Workers Finished</code>

<code>Saving Primary metadata</code>

<code>Saving </code><code>file</code> <code>lists metadata</code>

<code>Saving other metadata</code>

<code>Generating sqlite DBs</code>

<code>lSqlite DBs complete</code>

<code>3、檢視中繼資料位置</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ls  /tmp</code>

<code>repodata</code>

<code>4、檢視中繼資料的組成</code>

<code>[root@izpo45bh60h6bsz ~]</code><code># ls /tmp/repodata/</code>

<code>24bff8236c43b8cce77ca9809b2b1e88bfd1e8fdfd74aef81ca79f93581ca228-primary.xml.gz</code>

<code>2f2effdd5cfd0a15456308e7f519c71981c5b6b0a022f1e727c753fd9d0b9257-filelists.sqlite.bz2</code>

<code>511b71f4b3d7d7a45a0578ca8e9afd8afaaed9ec6bc807245b47a70c3d0f02b1-other.sqlite.bz2</code>

<code>6fdabd5af8661afc931075fde9bc87f1859f78819fae135832918a2548ed7c9b-other.xml.gz</code>

<code>9c564d97a9a0ecd0b8d244b14c9cc22fffb62279989b041e66c8a2df1551c730-primary.sqlite.bz2</code>

<code>b0ab6c6ab987d2d530ca3faf2c7c3b725375a156df2130e77ccbc911b1ecc752-filelists.xml.gz</code>

<code>repomd.xml  </code><code>##以上資料的校驗碼資訊</code>

lftp指令

<code>lftp&gt; !STRING 執行shell指令</code>

<code>lftp&gt; lcd DIR 本地執行切換目錄</code>

<code>lftp&gt; mget </code><code>file</code> <code>... 批量下載下傳檔案</code>

    目的:

   1、提供的rpm功能不全

   2、新功能,rpm包還沒有制作

   原理: 源代碼 -- 預處理(預處理器) -- 編譯(編譯器gcc) -- 彙編代碼 -- 彙編(彙編器) -- 二進制指令 -- 連結(連結器)

  源代碼命名: testapp-1.2.3-1.作業系統平台.src.rpm

  編譯: 

   靜态: 共享庫編譯程序式,運作時不調用共享庫,不連結,占記憶體。

   共享庫:在編譯成二進制程式後,需要用連結器,連結庫。運作時,調用共享庫。節約記憶體。

源代碼中有多個檔案間存在依賴關系,為了簡化難度提供項目管理工具

   java源程式: maven

   c,c++程式: make

C,C++代碼編譯的步驟:

1、擷取程式包源代碼的途徑

  1)、官方自建的站點

   apache.org(ASF:Apache Software Fundition)

   mariadb.org

  2)、代碼托管站點

   SourceForge

   Github.com

   code.google.com

2、

    1)、手動提供開發環境及工具

        開發工具

            autoconf 生成confiugre腳本

            automake 生成Makefile.in檔案

            make 

            gcc

        開發環境

            glibc(Gnu C标準庫)、頭檔案

    2)、CentOS包組

        6 "Development Tools" "Server Platform Development"

        7 "Development Tools"

3、展開檢視INSTALL,README幫助手冊:擷取安裝方式

    1)隻需要make

    2)隻需要make install

    3) 直接使用

4、安裝後檢驗gcc是否安裝完畢: gcc version

5、編譯

    擷取編譯可指定的選項: ./configure --help

    1)指定選項

    --prefix=DIR         程式預設安裝位置,便于解除安裝(隻有此選項時,所有其他目錄均在DIR目錄下)

    --sysconfdir=CONF_DIR   配置檔案安裝

    --disable-FATURE      預設啟用,不想用時,才禁用

    --enable-FATURE     預設禁用,想用時,才啟用

    --with-PACKAGE=PATH    指定目前程式包依賴的包及其所在的路徑

    --without-PACKAGE    指定目前程式包不依賴的包

2)make          當./configure成功後,生成Makefile檔案後,方可make

    **注意Make後error資訊**

3)make install     調用install指令,完成複制檔案(dd,cp,install)

6、編譯後的處理

    PATH變量輸出、庫路徑輸出、頭檔案路徑輸出、man手冊路徑輸出 

1)導出二進制程式至PATH環境變量

    環境變量: profile類

        全局: /etc/profile 、 /etc/profile.d/*.sh

        個人: ~/.bash_profile

2)導出庫檔案路徑

    檢視庫: ldconfig -p

    配置庫: /etc/ld.so.conf 、 /etc/ld.so.conf.d/*.conf

    重新生成緩存: ldconfig [-v]

檢視程式依賴的庫:

    # ldd path

3)導出頭檔案

    ln -sv /path/to/include /usr/include/NAME

4)導出幫助手冊 

    MANPATH /PATH/TO/man

    不導出時:

        man -M /PATH/TO/man COMMAND

本文轉自 lccnx 51CTO部落格,原文連結:http://blog.51cto.com/sonlich/1956834,如需轉載請自行聯系原作者

繼續閱讀