一、Red Hat 系列
Redhat、Centos、Fedora等
1. 手動安裝
1.1 rpm命令管理
-
RPM包命令原則
httpd-2.2.15-15.el6.centos.1.i686.rpm httpd: 軟件包名 2.2.15: 軟件版本 15: 軟件發佈的次數 el6.centos: 適合的Linux平臺 i686: 適合的硬件平臺 rpm: rmp包擴展名
-
RPM包依賴性
- 樹形依賴:a->b->c
- 環形依賴:a->b->c->a
- 模塊依賴:模塊依賴(以.so.數字 結尾的文件)查詢網站:www.rpmfind.net
-
常用命令
# 1. RPM包安裝 rpm -ivh 包名 # -i (install): 安裝 # -v (verbose): 顯示安裝信息 # -h (hash): 顯示進度 # --nodeps: 不檢測依賴性 rpm -ivh mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 2. RPM包升級 rmp -Uvh 包名 # -U: 升級 rpm -Uvh mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 3. 卸載 rmp -e 包名 # -e (erase): 卸載 # --nodeps: 不檢查依賴性 rmp -e httpd # 4. 查詢包是否安裝 rmp -q 包名 # -q (query): 查詢 # -a (all):所有 rmp -q httpd # 查詢所有已經安裝的rpm包 rmp -qa # 5. 查詢軟件包詳細信息 rmp -qi 包名 # -i (information):查詢軟件信息 # -p (package):查詢未安裝包信息 rmp -qi httpd rmp -qp mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 6. 查詢包中文件安裝位置 rmp -ql 包名 # -l (list): 列表 rmp -ql httpd rmp -qpl mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm # 7. 查詢系統文件屬於哪個RPM包 rpm -qf 系統文件名 # -f (file):查詢系統文件屬於哪個軟件包 # 8. 查詢軟件包的依賴性 rmp -qR 包名 # -R (rquires): 查詢軟件包的依賴性 rmp -qR httpd rmp -qpR mysql-connector-odbc-5.1.1r1144-7.el6.i686.rpm
1.2 RPM包校驗
# 1. RPM包校驗
rmp -V 已安裝的包名
# -V (verify): 校驗指定RPM包中的文件
rpm -V httpd
# 修改一點內容後,再校驗
vim /etc/httpd/conf/httpd.conf
rpm -V httpd
# 結果如下圖:
1. 驗證內容中的8個信息的具體內容如下:
- S: 文件大小是否改變
- M: 文件的類型或文件的權限(rwx)是否被改變
- 5: 文件MD5校驗和是否改變(可以看成文件內容是否改變)
- D: 設備中的代碼是否改變
- L: 文件路徑是否改變
- U: 文件的所有者是否改變
- G: 文件的所屬組是否改變
- T: 文件的修改時間是否改變
2. 文件類型
- c: 配置文件 (config file)
- d: 普通文檔 (documentation)
- g: ghost file,很少見
- l: 授權文件 (license file)
- r: 描述文件 (read me)
1.3 RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件絕對路徑
# rpm2cpio: 將rpm包轉換爲cpio格式的命令
# cpio:是一個標準工具,它用於創建軟件檔案文件和從檔案文件中提取文件
cpio 選項 < [文件|設備]
# -i: copy-in模式,還原
# -d: 還原是自動新建目錄
# -v: 顯示還原過程
# eg:
# 查詢ls命令屬於哪個軟件包, 也可以從網卡找屬於哪個包
rpm -qf /bin/ls
# 造成ls命令誤刪除假象
mv /bin/ls /tmp/
# 提取RPM包中ls命令到當前目錄的/bin/ls下,假設當前目錄爲/root
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm | cpio -idv ./bin/ls
# 把ls命令複製到/bin/目錄下,修復文件丟失
cp /root/bin/ls /bin/
2. yum在線自動安裝
2.1 網絡yum源
vim /etc/yum.repos.d/CentOS-Base.repo
# [base] : 容器名稱,一定要放在[]中,可以隨意取
# name : 容器說明,可以自己隨便寫
# mirrorlist: 鏡像站點,如果baseurl下載的比較慢,可以選擇下載快的鏡像站點進行下載
# baseurl : yum源服務器的地址。默認是CentOS官方的yum源服務器,是可以使用的,如果你覺得慢,可以改成
# 你喜歡的yum源地址
# enabled : 此容器是否生效,不寫或寫成enabled=1:代表生效;enable=0:代表不生效
# gpgcheck : 1:代表RPM的數字證書生效,0:不生效
# gpgkey : 數字證書的公鑰文件保存位置。不用修改
2.2 常用yum命令
# 1. 查詢所有可用軟件包列表
yum list
# 2. 搜索服務器上所有和關鍵字相關的包
yum search 關鍵字
# 3. 安裝
yum -y install 包名
# -y 自動回答yes,如果沒有,安裝的過程會有交互式問答
# 4. 卸載
yum -y remove 包名
# 會卸載依賴包,導致其它軟件不可用, 儘量不要用yum進行卸載
# 5. 添加yum源
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 6. 更新
yum -y update
2.3 CentOS6 中替換yum源
爲什麼要替換yum源?
答:CentOS默認yum源是國外的, 速度無法保證,用起來很不爽,今天我們把默認源換成國內的163源,163是目前國內最好用的源,速度是相當快的,還有一些比較好的源,比如阿里源wget http://mirrors.aliyun.com/repo/Centos-7.repo
。
以把CentOS7 中的yum源更換成163源
1. 進入yum源配置文件 cd /etc/yum.repos.d
2. 備份一下當前的源,以防出錯後可以還原回來mv ./CentOS-Base.repo ./CentOS-Base-repo.bak
3. 下載網易163的源 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
4. 清理一下舊包 yum clean all
5. 把下載下來文件 CentOS7-Base-163.repo設置成爲默認源 mv CentOS7-Base-163.repo CentOS-Base.repo
6. 生成緩存即可用163源了 yum makecache
如果不做備份:
1. cd /etc/yum.repos.d
2. wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
或者
curl -o CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
4. yum clean all
5. yum makecache
2.4 yum軟件組管理命令
# 1. 列出所有可用的軟件組列表
yum grouplist
# 2. 安裝指定軟件組,組名可以由grouplist查詢出來
yum groupinstall 軟件組名
# 卸載指定軟件組
yum groupremove 軟件組名
2.5 光盤yum源搭建步驟
# 1. 掛載光盤
mount /dev/cdrom /mnt/cdrom
# 2. 讓網絡yum源文件失效
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
# 3. 修改光盤yum源文件
vim CentOS-Media.repo
# 內容如下:
[c6-media]
name=CentOS-$releasever - Media
# 主要修改下面一行
baseurl=file:///mnt/cdrom
# 地址爲你自己的光盤掛載地址
# file:///media/cdrom/
# file:///media/cdrecorder/
# 註釋這兩個不存在的址
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
2.6 rpm包默認安裝位置
路徑 | 作用 |
---|---|
/etc |
配置文件安裝目錄 |
/usr/bin |
可執行文件 |
/usr/lib |
程序所使用的函數庫保存位置 |
/usr/share/doc |
基本的軟件使用手冊保存位置 |
/usr/share/man |
幫助文件保存位置 |
3. 源碼包安裝
源碼包安裝和RPM包安裝的區別
-
安裝位置
源碼包:安裝在指定的位置當中,一般是/usr/local/軟件名/
RPM包:安裝的默認的路徑下,看2.5小節 -
安裝位置不同帶來的影響
- RPM包安裝的服務可以使用系統服務管理命令(service)來管理,如RPM包安裝的apache的啓動方法有以下兩種:
/etc/rc.d/init.d/httpd start
service httpd start
- 而源碼包安裝的服務則不能被服務管理命令管理,因爲沒有安裝到默認路徑中。所以只能用絕對路徑進行服務的管理,如
- usr/local/apache2/bin/apachectl start
- RPM包安裝的服務可以使用系統服務管理命令(service)來管理,如RPM包安裝的apache的啓動方法有以下兩種:
-
源碼包安裝過程
具體的安裝步驟一般是源碼包中INSTALL
文件中有詳細介紹
以安裝apache爲例
3.1 安裝# 1.安裝準備 - 安裝C語言編譯器 - 下載源碼包:http://mirror.bit.edu.cn/apache/httpd/ # 2. 安裝注意事項 - 源代碼保存位置:`/usr/local/src/` - 軟件安裝位置:`/usr/local/` # 3. 解壓縮下載的源碼包 # 4. 進入縮目錄 # 5. ./configure 軟件配置與檢查 - 定義需要的功能選項 - 檢測系統環境是否符合安裝要求 - 把定義好的功能選項和檢測系統環境的信息都寫入Makefile文件,用於後續的編譯 ./configure --prefix=/usr/local/apache2 # --prefix: 自定義安裝路徑 # 6. 編譯: 將源碼包翻譯成二進制,此時生產的都是臨時文件,安裝路徑中還沒有寫入數據 make # 如果此步出錯,可以使用 make clean 來清除make產生的臨時文件 # 7. 安裝: 此時才向安裝路徑中寫入數據 make install
3.2 卸載
不需要卸載命令,直接刪除安裝目錄即可。不會遺留任何垃圾文件rm -rf /usr/local/apache2
二、Debian系列
2.1 手動安裝
dpkg [選項] 安裝包
dpkg -L +軟件包的名字,可以知道這個軟件包包含了哪些文件
2.2 apt-get在線安裝
- apt-get 安裝
apt-get可以用於運作deb包
- 安裝:
apt-get install
- 卸載:
apt-get remove
- 更新:
apt-get update
- 僅刪除不再能被下載的包:
apt-get autoclean
- 軟件包下載存放目錄:
/var/cache/apt/archives/
- 刪除安裝包:
apt-get clean
或aptitude clean
注:刪除目錄/var/cache/apt/archives/
和/var/cache/apt/archives/partial/
下所有包(鎖定包除外)
deb包默認安裝位置
路徑 | 作用 |
---|---|
/etc |
配置文件安裝目錄 |
/usr/bin |
可執行文件 |
/usr/lib |
程序所使用的函數庫保存位置 |
/usr/share/doc |
基本的軟件使用手冊保存位置 |
/usr/share/man |
幫助文件保存位置 |
如:系統中的python2.7
可執行文件位置:/usr/bin/python
自帶的庫位置:/usr/lib/python2.6/dist-packages/
和/usr/lib/python2.7/
pip安裝的法模塊默認放在:usr/local/lib/python2.7/dist-packages
或~/.local/lib/python2.7/site-packages
2.3 源碼包安裝
同Rea Hat系列的源碼安裝
源碼包安裝路徑:/usr/local/軟件名
三、服務管理
3.1 服務的分類
啓動與自啓動的區別:
-
服務啓動:就是在當前系統中讓服務運行,並提供功能
-
服務自啓動:自啓動是指讓服務在系統開機或重啓之後,隨着系統的啓動而自動啓動服務
# 1.查看服務自啓動狀態,可以看到所有RPM包或DEB包安裝的服務 chkconfig --list # 2. 源碼包安裝的服務,一般在/usr/local/下 # 3. 查看某個服務是否已經啓動: ps aux | grep 服務名 netstat -tlun | grep 服務名
3.2 RPM或才DEB包安裝服務的管理
-
安裝服務的位置
路徑 作用 /etc/init.d
啓動腳本位置 /etc/sysconfig
初始化環境配置文件位置 /etc/
配置文件位置 /etc/xinetd.conf
xinetd配置文件 /etc/xinetd.d
基於xinetd服務的啓動腳本 /etc/lib/
服務產生的數據放在這裏 /var/log/
日誌 -
獨立服務的啓動
/etc/init.d/獨立服務名 start|stop|status|restart service 獨立服務名 start|stop|status|restart # 查看所有服務的狀態 service --status--all
-
獨立服務的自啓動
# 三種方式 # 1. chkconfig [--level 運行級別] [獨立服務名] [on|off] chkconfig --level 2345 httpd on # 2. 修改/etc/rc.d/rc.local文件,加入 /etc/rc.d/init.d/httpd start # 3. 使用ntsysv命令管理自啓動(red hat 專有)
-
基於xinetd服務
基於xinetd的服務越來越少了,其中telnet就是一個,本節瞭解一下即可。另外在xinetd服務中啓動與自啓動是一個概念,這一點要特別注意。# 1. 安裝xinetd與telnet yum -y install xinetd yum -y install telnet-server # 2. xinetd服務的啓動 vim /etc/xinetd.d/telnet service telnet { flags =REUSE # 標誌爲REUSE,設定TCP/IP socket可重用 socket_type =stream # 使用TCP協議數據包 user =root # 啓動服務的用戶爲root wait =no # 允許多個連接同時連接 server =/usr/sbin/in.telnetd # 服務的啓動程序 log_on_failure += USERID # 登陸失敗後,記錄用戶的ID disable =no # no:服務啓動, yes:服務不啓動 } # 3. 重啓xinetd服務 service xinetd restart # 4. xinetd服務的自啓動, 以下兩種方法 chkconfig telnet on ntsysv # red hat 專有
3.3 源碼包安裝服務的管理
# 1. 源碼包安裝服務的啓動與停止
# 使用絕對路徑,調用啓動腳本來啓動。不同的源碼包的啓動腳本不同。可以查看
# 源碼包的安裝說明,查看啓動腳本的方法
/usr/local/apache2/bin/apachectl start|stop
# 2. 源碼包服務的自啓動
vim /etc/rc.d/rc.local
# 加入以下內容
/usr/local/apache2/bin/apachectl start
# 3. 讓源碼包服務被服務管理命令識別
# 3.1 讓源碼包的apache服務能被service命令管理啓動
ln -s /usr/local/apache2/bin/apachectl /etc/init.d/apache
# 3.2 讓源碼包的apache服務能被chkconfig與ntsysv命令管理自啓動
vim /etc/init.d/apache
# chkconfig:35 86 76
# 指定httpd腳本可以被chkconfig命令管理。格式是:
# chkconfig:運行級別 啓動順序 關閉順序
# description:source package apache
# 說明,內容隨意
# 4. 將apache添加至chkconfig命令管理中
chkconfig --add apache
# 查看是否添加成功
chkconfig --list | grep apache
/etc/init.d/apache 文件內容如下:
其他下載命令wget和curl
-
下載單個文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
-
使用 wget -O 下載並以不同的文件名保存
參數-O來指定一個文件名
wget -O wordpress.tar.gz http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
-
使用 wget -c 斷點續傳
使用wget -c重新啓動下載中斷的文件:
對於我們下載大文件時突然由於網絡等原因中斷非常有幫助,我們可以繼續接着下載而不是重新下載一個文件
wget -c http://mirrors.aliyun.com/repo/Centos-7.repo
4、使用 wget -b 後臺下載
對於下載非常大的文件的時候,我們可以使用參數-b進行後臺下載
wget -b http://mirrors.aliyun.com/repo/Centos-7.repo
你可以使用以下命令來察看下載進度
tail -f wget-log
-
使用 wget –mirror 鏡像網站
-
使用 wget -i 下載多個文件
# 1 首先,保存一份下載鏈接文件
cat > filelist.txt
url1
url2
url3
url4
# 2. 接着使用這個文件和參數-i下載
wget -i filelist.txt
wget不是安裝方式,它是一種下載工具,類似於迅雷。
通過HTTP、HTTPS、FTP三個最常見的TCP/IP協議下載,並可以使用HTTP代理,名字是World Wide Web”與“get”的結合。如果要下載一個軟件,可以直接運行:
wget 下載地址
如果當前ubuntu未安裝wget,可按下列操作進行安裝和檢查是否安裝成功:
sudo apt-get update
sudo apt-get install wget
wget --version