軟體安裝與維護【Linux-shell】
阿新 • • 發佈:2018-12-24
軟體安裝與維護:
常用Linux軟體安裝方式:
1.以原始碼方式安裝
2.以軟體包方式安裝:【軟體包分2種】
1).rpm軟體包。-->在RedHat紅帽企業的RedHat,Fedora,CentOS等發行版Linux上,軟體包的管理工具:rpm包管理器
2).deb軟體包。-->在Debian的Debian,Ubuntu等Linux發行版上,軟體包的管理工具:dpkg
3.以線上方式安裝:【線上軟體安裝和更新-方式分2種】
1)yum #---->對應.rpm軟體包
2 )apt #---->對應.deb軟體包
-------------------------------------------------------------------------------------------
rpm管理器:
軟體包檔名基本格式:【軟體名稱-版本號-釋出版本次數.硬體架構.rpm】
# i686->Intel 686,i386,x86-->32位,x86_64-->64位
rpm [選項】 【rpm軟體包檔案位置/軟體名稱】:安裝、維護軟體包
-i:安裝指定軟體包檔案,加軟體包檔案路徑引數
-v:顯示詳細過程資訊
-h:顯示進度,結合-v
-q:查詢指定軟體,給出軟體名稱引數。
-U:升級軟體包,加軟體包路徑引數
-V:加軟體名稱,驗證指定軟體
-e:給出軟體名稱引數,刪除指定軟體
-K:給出軟體包檔案路徑引數,檢查簽名
rpm -V apache2
#標誌資訊,標誌:S檔案大小發生改變,M檔案訪問許可權或型別發生改變,5檔案內容發生變化而使MD5發生變化,L符號連結發生變化,D裝置主次編號改變,U軟體使用者歸屬關係改變,G軟體組群歸屬關係改變,T檔案修改時間改變,P軟體執行許可權改變。
rpm -Vf /etc/crontab
#標誌資訊與檔名之間的檔案型別標誌:
#c配置檔案,d文件,g不被軟體包含的檔案,l授權檔案,r自述檔案
ls -l /etc/pki
#檢視rpm數字簽名認證的Linux發行版公鑰檔案目錄
----------------------------------------------------------------------------------
使用yum服務:
yum客戶端使用yum服務的全域性配置檔案:cat /etc/yum/yum.conf
配置客戶端連線yum容器:
#網易的CentOS源
1.先將/etc/yum/repos.d/下的檔案備份,然後從http://mirrors.163.com/.help/centos.html下載yum容器的.repo檔案(CentOS6)----CentOS6-Base-163.repo儲存在/etc/yum/repos.d/目錄下。
2.編輯上述的.repo檔案,將所有的$releasever替換為6。
3.cd /etc/yum/repos.d
ls
yum clean all
yum makecache
||
||
||
#再配置本地yum源:
1.掛載光碟在/mnt/cdrom。
2.在/etc/yum/repos.d目錄下建立local.repo檔案。編輯local.repo檔案:
[local]
name=local
baseurl=file:///mnt/cdrom/Server
gpgcheck=1
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-redhat-release
enabled=1
||
||
||
yum clean all
yum makecache
--------------------------------------------------------------------
local.repo的配置資訊:
[local]:標記了關於local這個yum容器的配置資訊起始位置。
name=local:yum容器的全名
baseurl=記錄了yum容器的所在位置。
gpgcheck=1是否檢查rpm軟體包的簽名。
gpgkey=用於驗證rpm軟體包數字簽名的公鑰檔案存放位置。
enabled=1該容器是否啟用。
-------------------------------------------------------------------
線上軟體安裝和更新:
yum install [軟體名列表】:安裝列表中的軟體包
yum update [軟體名列表】:更新列表中的軟體包
yum remove [軟體名列表】:移除列表中的軟體包
yum list 【軟體名列表】:列出可用軟體包的各種資訊
yum info [軟體名列表】:顯示可用軟體包的描述和總體資訊
yum provides [特徵】:找出所有符合特徵資訊的軟體包
yum clean:清除快取
yum makecache:重新生成快取。
yum repolist:列出當前所有的容器。
-----------------------------------------------------------------
編譯原始碼與軟體安裝:
gcc [選項】 【輸入檔案】:編譯原始碼
-o:後加輸出檔案路徑引數-->生成可執行二進位制檔案。
-c:只對原始碼進行預處理、編譯和彙編,不進行連線,即:只生成目標檔案.o
-I:後加目錄引數,編譯器從目錄中查詢是否有所需的標頭檔案.h
-----------------------------------------------------------------------
make和makefile:
cd ~/makehello
#include "world1.h"
#include "world2.h"
int main()
{
hello1();
hello2();
return 0;
}
#儲存為main.c
void hello1();
#儲存為world1.h
void hello2();
#儲存為world2.h
#include "world1.h"
#include <stdio.h>
void hello1()
{
printf("hello world\n");
}
#儲存為hello1.c
#include "world2.h"
#include <stdio.h>
void hello2()
{
printf("hello world2\n");
}
#儲存為world2.h
首先:
gcc -c main.c
gcc -c hello1.c
gcc -c hello2.c
gcc -o makehello main.o hello1.o hello2.o
./makehello
然後:
vim ./makefile---->:
makehello:main.o hello1.o hello2.o
gcc -o makehello main.o hello1.o hello2.o
hello1.o:hello1.c world1.h
gcc -c hello1.c
hello2.o:hello2.c world2.h
gcc -c hello2.c
main.o:main.c world1.h world2.h
gcc -c main.c
#:wq儲存退出---->
rm -f main.o hello1.o hello2.o
make
./makehello
----------------------------------------------------------------------
make [選項】 【目標】:自動確定原始碼的編譯部分並執行對應的編譯命令。
-f:後加檔案路徑引數用於指定一個檔案作為makefile
-I:後加目錄路徑引數,用於指定一個包含了makefile檔案的目錄。
makefile檔案每條規則的定義格式:
目標:相關檔案列表
製表符(Tab鍵) 執行命令
#清理目標檔案clean:
rm -f main.o hello1.o hello2.o
---->命令列:
make clean
make main.o
make
./makehello
make命令安裝軟體:
install:
@cp makehello /usr/local/bin
@echo "install finish." # @:make執行命令後不輸出內容
---->命令列:
make clean
make
make install
which makehello
-----------------------------------------------------------------------
vim makefile--->:
all:makehello install clean
hello1.o:hello1.c world1.h
gcc -c hello1.c
hello2.o:hello2.c world2.h
gcc -c hello2.c
main.o:main.c world1.h world2.h
gcc -c main.c
makehello:main.o hello1.o hello2.o
gcc -o makehello main.o hello1.o hello2.o
install:
@cp makehello /usr/local/bin
@echo "安裝完成"
clean:
@rm -f main.o hello1.o hello2.o
@echo "清除臨時檔案"
----->
make
makefile檔案中巨集定義的使用:
INSTALLDIR=/usr/local/bin
#install:
# @cp makehello $(INSTALLDIR)
# @echo "安裝完成"
----------------------------------------------------------------------------
制定軟體驗證的週期性作業:
rpm -Va
#!/bin/bash
rpm -Va > /tmp/rpmVResult
cat /tmp/rpmVResult | while read line
do
i=`expr index "$line" 5`
if [ $i -eq 3 ]
then
echo $line>>/tmp/rpmVResult_md5
fi
done
if [ -e /tmp/rpmVResult_md5 ]
then
mail root< /tmp/rpmVResult_md5
rm -f /tmp/rpmVResult_md5
fi
#儲存為rpmVerify.sh
設定指令碼的執行週期:
0 0 * * 1 root /root/cron/rpmVerify.sh
date
tail /var/log/cron
mail
---------------------------------------------------------------------------
tarball軟體的編譯及安裝:
1.從https://nmap.org/download.html下載nmap網路安全掃描軟體的tarball檔案,儲存在/root/nmap下
2.解壓:tar -zxvf nmap-6.49BETA5.tgz
ls
cd nmap-6.49BETA5
ls
3.執行configure指令碼:
./configure
make #編譯
make install #安裝軟體
nmap -V #檢查nmap軟體的安裝版本