<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Linux的軟件安裝管理 [TOC] # 軟件包管理簡介 ## 軟件包分類 ### 源碼包 #### **源碼包優點** >[success] 1. 開源,如果有足夠的能力,可以對源代碼行修改 >2. 可以自由選擇所需功能 >3. 軟件是編譯安裝,所以更加適合自己的系統,更加穩定也效率更高 >4. 卸載方便 #### **源碼包缺點** > 1. 安裝過程步驟較多,較容易出錯 >2. 編譯過程時間較長,安裝比二進制包安裝時間上 >3. 編譯安裝一旦報錯新手很難解決 * * * * * ### 二進制包(RPM軟件包和系統默認包) #### **二進制包優點** >[success] 1. 包管理系統簡單,只通過幾個命令就可以實現包的安裝、升級、查詢和卸載 > 2. 安裝速度比源碼安裝快很多 #### **二進制包缺點** > 1. 經過編譯,不能在看到源碼 > 2. 功能選擇不如源碼包靈活 > 3. 依賴性 # RPM命令管理 ## RPM軟件包來源 答:RPM軟件包在系統光盤中 ~~~ mkdir /mnt/cdrom # 創建光盤掛載點 mount /dev/cdrom /mnt/cdrom/ # 將光盤掛在到掛載點 mount: block device /dev/sr0 is write-protected, mounting read-only [root@luo.centos6.5 ~] # df -Th # 查看掛載情況 Filesystem Type Size Used Avail Use% Mounted on ... ... /dev/sr0 iso9660 4.2G 4.2G 0 100% /mnt/cdrom [root@luo.centos6.5 ~] # cd /mnt/cdrom/Packages/ # 進入到packages目錄 [root@luo.centos6.5 /mnt/cdrom/Packages/] # ls # 查看光盤下的rpm軟件包 ... ... zlib-1.2.3-29.el6.i686.rpm zlib-1.2.3-29.el6.x86_64.rpm zlib-devel-1.2.3-29.el6.i686.rpm zlib-devel-1.2.3-29.el6.x86_64.rpm ~~~ ## RPM軟件包命名規則 這里以`httpd-2.2.15-29.el6.centos.x86_64.rpm`為例: `httpd` 軟件包名稱 `2.2.15` 軟件版本 `29` 軟件發布的次數 `el6.centos`適合的Linux平臺 `x86_64` 適合的硬件平臺 `rpm` rpm軟件包擴展名 ## RPM軟件包依賴性(樹形、環形、模塊) * 樹形依賴:a->b->c * 環形依賴:a->b->c->a * 模塊依賴:查詢網站 www.rpmfind.net ## RPM軟件包安裝 ### 軟件包全名與軟件包名 **軟件包全名**:操作的軟件包是沒有安裝的軟件包時,使用軟件包全名,而且要注意路徑 **軟件包名**:操作依據安裝的軟件包時,使用軟件包名,是搜索`/var/lib/rpm`中的數據庫 ### RPM軟件包的安裝命令 * * * * * `rpm -ivh 軟件包全名` **選項釋意**   -i (install) 安裝   -v (verbose) 顯示詳細信息   -h (hash) 顯示進度   --nodeps 不檢測依賴性安裝選項 (不建議使用的選項) 例如:使用 `rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm` 安裝http軟件包。 ### RPM軟件包的卸載命令 * * * * * `rpm -e 軟件包名` **選項釋意**   -e (erase) 卸載   --nodeps 不檢查依賴性卸載選項 例如:使用 `rpm -e httpd-2.2.15-29.el6.centos.x86_64.rpm` 卸載http軟件包。 ### RPM軟件包的升級命令 * * * * * `rpm -Uvh 軟件包全名` **選項釋意**   -U (upgrade) 升級 例如:使用 `rpm -Uvh httpd-2.2.15-29.el6.centos.x86_64.rpm` 升級http軟件包。 ## RPM相關查詢命令 ### 查詢軟件是否安裝 `rpm -q 軟件包名` 查詢軟件是否安裝 **選項釋意**   -q (query) 查詢 例如:使用 `rpm -q gcc` 查詢gcc軟件包是否安裝。 * * * * * `rpm -qa 軟件包名` 查詢所有已經安裝過得RPM軟件包 **選項釋意**   -q (query) 查詢   -a (all) 所有 例如: ~~~ [root@luo.centos6.5 /mnt/cdrom/Packages] # rpm -qa |grep gcc # 配合管道,查詢gcc相關的RPM軟件包名 gcc-4.4.7-16.el6.x86_64 gcc-c++-4.4.7-16.el6.x86_64 gcc-gfortran-4.4.7-16.el6.x86_64 libgcc-4.4.7-16.el6.i686 libgcc-4.4.7-16.el6.x86_64 ~~~ ### 查詢軟件包詳細信息 `rpm -qi 軟件包名` **選項釋意**   -q (query) 查詢   -i (information) 軟件信息   -p (package) 未安裝的軟件包 例如: ~~~ [root@luo.centos6.5 /mnt/cdrom/Packages] # rpm -qi gcc # 查詢已安裝的軟件包詳細信息 Name : gcc Relocations: (not relocatable) Version : 4.4.7 Vendor: CentOS Release : 16.el6 Build Date: 2015年07月23日 星期四 10時43分01秒 Install Date: 2015年10月30日 星期五 21時46分11秒 Build Host: c6b8.bsys.dev.centos.org Group : Development/Languages Source RPM: gcc-4.4.7-16.el6.src.rpm Size : 19496512 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ with exceptions Signature : RSA/SHA1, 2015年07月25日 星期六 04時41分11秒, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://gcc.gnu.org Summary : Various compilers (C, C++, Objective-C, Java, ...) Description : The gcc package contains the GNU Compiler Collection version 4.4. You'll need this package in order to compile C code. [root@luo.centos6.5 /mnt/cdrom/Packages] # rpm -qip httpd-2.2.15-29.el6.centos.x86_64.rpm # 查詢未安裝包的詳細信息 Name : httpd Relocations: (not relocatable) Version : 2.2.15 Vendor: CentOS Release : 29.el6.centos Build Date: 2013年08月14日 星期三 01時30分33秒 Install Date: (not installed) Build Host: c6b8.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: httpd-2.2.15-29.el6.centos.src.rpm Size : 3076447 License: ASL 2.0 Signature : RSA/SHA1, 2013年08月14日 星期三 01時32分39秒, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server. ~~~ ### 查詢軟件包文件安裝位置 `rpm -ql 軟件包名` **選項釋意**   -q (query) 查詢   -l (list) 列表   -p (package) 未安裝的軟件包 例如: ~~~ [root@luo.centos6.5 /mnt/cdrom/Packages] # rpm -ql gcc /usr/bin/c89 /usr/bin/c99 /usr/bin/cc /usr/bin/gcc /usr/bin/gcov /usr/bin/protoize /usr/bin/unprotoize /usr/bin/x86_64-redhat-linux-gcc ~~~ #### RPM軟件包默認安裝位置 | 安裝目錄 | 文件說明 | | -- | -- | | `/etc` | 配置文件安裝目錄 | | `/usr/bin` | 可執行的命令安裝目錄 | | `/usr/lib` | 程序所使用的函數庫保存位置 | | `/usr/share/doc` | 基本的軟件使用手冊保存位置 | | `/usr/share/man` | 幫助文件保存位置 | ### 查詢系統文件屬于哪個RPM軟件包 rpm -qf 系統文件名 **選項釋意**   -q (query) 查詢   -f (file) 查詢系統文件屬于那么RPM軟件包 例如: ~~~ [root@luo.centos6.5 /mnt/cdrom/Packages] # rpm -qf /usr/share/man/man1/gcc.1.gz # 查看gcc.1.gz文件屬于哪個rpm軟件包 gcc-4.4.7-16.el6.x86_64 ~~~ ### 查詢軟件包的依賴性 rpm -qR 軟件包名 **選項釋意**   -q (query) 查詢   -R (requires) 查詢軟件包的依賴性   -p (package) 查詢未安裝包的信息 ## RPM軟件包校驗 `rpm -V 已經安裝的軟件包名` ~~~ [root@luo.centos6.5 /etc/httpd] # rpm -V httpd # 檢測出我們修改了apache的配置文件大小 S.5....T. c /etc/httpd/conf/httpd.conf ~~~ **1. 驗證內容中的8個信息的具體內容如下:** > S 文件大小是否改變 M 文件的類型或文件的權限(rwx)是否被改變 5 文件MD5校驗是否改變(可以看成文件內容是否改變) D 設備的主從代碼是否改變 L 文件路徑是否改變 U 文件的屬主(所有者)是否改變 G 文件的屬組是否改變 T 文件的修改時間是否改變 **2. 文件類型:** > c (config file) 配置文件 d (documentation) 普通文檔 g (ghost file) 很少見,就是該文件不應該被這個RPM包包含 L (license file) 授權文件 r (read me) 描述文件 ## RPM軟件包中文件的提取 `rpm2cpio 軟件包全名 |cpio -idv .文件絕對路徑` rpm2cpio 將RPM軟件包轉換成cpio格式的命令 cpio 是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件 例如:系統重要文件丟失 ~~~ rpm -qf /bin/ls # 查詢ls命令屬于哪個軟件包 mv /bin/ls /tmp/. # 模擬系統ls命令刪除 cat /mnt/cdrom/Packages/coreutils-8.4-31.el6.x86_64.rpm |cpio -idv ./bin/ls # 提起RPM包中ls命令到當前目錄的/bin/ls下(注意因為光盤是寫保護,執行該命令的時候不要在光盤目錄下) cp /root/bin/ls /bin/. # 把ls命令復制回/bin/目錄下,修復文件丟失 ~~~ * * * * * # yum在線管理 優點:將所有軟件包放在官方服務器上,當進行yum在線安裝的時候,可以自動解決依賴性問題。 ## yum源文件 `cat /etc/yum.repos.d/CetnOS-Base.repo` |配置|說明| |-|-| |`[base]`| 容器名稱,一定要放在[]中,可以自定義| |`name`| 容器說明,可以自定義| |`mirrorlist`| 鏡像站點,可以注釋掉| |**`baseurl`**| 我們的yum源服務器的地址,默認是CentOS官方的yum源服務器,是可以使用的,如果覺得慢可以改變成自定義的yum源地址| |**`enabled`**| 次容器是否生效,如果不寫或者寫成enable=1都是生效,寫成enabled=0就是不生效| |`gpgcheck`| 如果是1是指rpm的數字證書生效,如果是0則不生效| |`gpgkey`| 數字證書的公鑰文件保存位置,不用修改| ## 光盤搭建yum源 ### 掛載光盤 1. `mkdir /mnt/cdrom` 建立掛載點 2. `mount /dev/cdrom /mnt/cdrom` 掛載光盤 3. `mv CentOS-Base.repo CentOS-Base.repo.luo.20151101` # 修改yum源文件后綴名,使其失效 4. `vim CentOS-Media.repo`編輯光盤yum源 ~~~ [c6-media] name=CentOS-$releasever - Media baseurl=file:///mnt/cdrom/ # 地址為當前光盤掛載的地址 # file:///media/cdrom/ # 注釋不存在的地址 # file:///media/cdrecorder/ gpgcheck=1 enabled=1 # 把enabled=0改為1,讓這個yum源配置文件生效 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 ~~~ **如圖:** ![](https://box.kancloud.cn/2015-11-01_5635ce408072b.png) 5. 使用`yum list`命令查看修改結果 ~~~ [root@luo.centos6.5 /etc/yum.repos.d] # yum list ... ... zlib-static.x86_64 1.2.3-29.el6 c6-media zsh.x86_64 4.3.10-7.el6 c6-media zsh-html.x86_64 4.3.10-7.el6 c6-media ~~~ ## yum命令 ### yum安裝 `yum -y install 軟件包名` **選項釋意**   -install 安裝   -y (yes) 自動回答yes **例如:** `yum -y install gcc` 安裝gcc編譯器軟件包 ### yum查詢 `yum list` 查詢所有可用軟件包列表 `yum search 關鍵字` 搜索服務器上所有和關鍵字相關的軟件包 ### yum升級 `yum -y update 軟件包名` **選項釋意**   -update 升級   -y (yes) 自動回答yes **例如:** `yum -y update gcc` 升級gcc編譯器軟件包 ### yum卸載(不推薦使用) `yum -y remove 軟件包名` **選項釋意**   -remove 卸載   -y (yes) 自動回答yes >[danger] 服務器使用最小化安裝,用什么軟件安裝什么,盡量不卸載。 ### yum軟件組管理命令 #### 列出所有可用的軟件組列表 `yum grouplist` #### 安裝指定軟件組 `yum groupinstall 軟件組名`,組名可以由grouplist查詢得到(注意:此命令指定的軟件組名必須為英文名稱) 如下demo: ##### 給系統安裝中文環境支持 ~~~ [root@luo.centos6.5 /etc/yum.repos.d] # echo $LANG # 查看目前語言環境 zh_CN.UTF-8 [root@luo.centos6.5 /etc/yum.repos.d] # LANG=en # 將當前會話shell設置為en語言 [root@luo.centos6.5 /etc/yum.repos.d] # yum grouplist|grep -i chinese # 搜索中文語言包 Failed to set locale, defaulting to C Chinese Support [zh] [root@luo.centos6.5 /etc/yum.repos.d] # yum groupinstall "Chinese Support" # 執行安裝中文語言包支持 [root@luo.centos6.5 /etc/yum.repos.d] # LANG=zh_CN.UTF-8 # 將當前會話shell設置為en語言 ~~~ #### 卸載指定軟件組 `yum groupremove 軟件組名` # 源碼包管理 ## 源碼包和RPM包的區別 安裝前的區別:概念上的區別 安裝后的區別:安裝位置不同 * RPM軟件包安裝的服務可以使用系統服務管理名錄(service) 來管理,例如RPM包安裝apache的啟動方法是: `/etc/rc.d/init.d/httpd start` Linux的標準啟動命令 `service httpd start` 紅帽系統使用的啟動命令 * 源碼包安裝的服務則不能被服務管理命令管理,因為沒有安裝到默認路徑中,所以只能使用絕對路徑對服務的管理,如: `/usr/local/apache2/bin/apachectl start` 當然也可以將`/usr/local/apache2/bin/apachectl`腳本復制到`/etc/rc.d/init.d/.`下才能使用service命令管理apache ## 源碼包的安裝過程 ### 安裝準備 * 安裝C語言編譯器 gcc * 下載源碼包,這里以apache為例 ### 注意事項 * 源代碼保存位置 `/usr/local/src` * 軟件安裝位置 `/usr/local/.` * 如何確定安裝過程報錯 * 安裝過程停止 * 出現error、warning或者no等提示 ### 源碼包安裝過程 * 下載源碼包 * 解壓縮下載的源碼包 * 進入解壓縮目錄(必須執行) * ./configure 軟件配置與檢查 * 定義需要的功能選項 * 檢測系統環境是否符合安裝要求 * 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件用于后續的編輯 * make 編譯 * make clean 清除之前的編譯結果(在編譯報錯時使用) * make install 編譯安裝 # 腳本安裝包 ## 準備工作 * 關閉RPM方式安裝的httpd和MySQL軟件包 * 保證yum源正常使用 * 關閉SELinux和iptables防火墻 ## 一鍵安裝腳本分析 所謂的一鍵安裝包,實際上還是安裝的源碼軟件包和RPM軟件包,只是把安裝過程寫成了腳本,便于初學者安裝。 優點:簡單、快速、方便 缺點:1. 不能自定義安裝軟件的版本,2.不能定義所需要的軟件功能 3. 源碼包的優勢喪失 ## 下載 下載lnmp安裝包,解壓安裝包并進入安裝包目錄:`wget -c http://soft.vpser.net/lnmp/lnmp1.2-full.tar.gz && tar zxvf lnmp1.2-full.tar.gz && cd lnmp1.2-full` *詳情參加:http://lnmp.org/download.html*
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看