合適初學者CentOS下的一些案例

來源:互聯網
上載者:User

1.簡介

軟體的安裝是linux學習時的重中之重,*nux上重要思維哲

學組合若干小功能進而成為一個可用可維護的系統平台.那麼在

作業系統構建完成之時,除非核心等支援系統必需軟體之外,可

拓展可維護的任務都是要交與管理員完成,這裡麵包括了基本的

軟體安裝.那今天我們就總結歸納一下在linux上軟體安裝的方式

方法.

2.分類

a) 包管理工具

rpm(redhet package manager),deb 與 yum 前端管理

工具

b) 源碼形式

提供src源碼,常見 tar.gz,tar.xz,tar.zip 通常需要在

機器上先編譯之後才能去安裝

c) 二進位格式

已經編譯成為二進位格式,可以在沒有編譯環境下的機器上運行.

當然這種形式隨著包管理工具的成熟被逐漸消亡,並不在本文討

論的範圍內.

3.使用

a) 包管理工具

rpm包含類redhat系完整的一套關於軟體的安裝維護的可行性

方案,所有rpm包遵循事實標準,這樣避免了我們在使用時的成本

.rpm包的命名也有一定規則,例如 mysql-5.1.66-2.el6_3.

x86_64.rpm產品名稱-產品版本號碼-rpm包版本號碼-適合操作系

統-計算架構.rpm

i) 安裝/升級/重裝

12345 rpm -i/U/Fvh mysql- 5.1 . 66 - 2 .el6_3.x86_64.rpm i install 安裝包(可接網路地址) v verbose 安裝詳情 h hash sign #表示的安裝進度 2 %一個#號 --nodeps 忽略包之間的依賴關係

ii) 移除

123 rpm -e mysql e erase 移除當前包 --nodeps 移除包忽略包之間的依賴關係

iii) 查詢

123456789 rpm -q mysql q query 查詢包是否以安裝 qa query all 查詢所有安裝的包 qd query document 查詢安裝過後的文檔資訊 如 man 資訊 qi query information 安裝後查詢包資訊 包括包名,版本 ,大小組別資訊,url,license,url,描述資訊等等 qc query configure 安裝後設定檔所在位置 ql query list 安裝所產生所有檔案清單 # p 參數可以與之前參數配合 qpa qpi等等

iv) 校正

我們維護的絕大數機器都是生產工具,不容懈怠.所以對於軟體

的管理不容出現紕漏,那麼對於互連網內容我們只能懷著批判

的情懷來進行使用.這裡就需要做包完整校正與身份校正,用來

確保我們所使用的包都是沒有病毒後門程式的

12 rpm -- import key 匯入包製作者公開金鑰 rpm -K mysql-5.1.66-2.el6_3.x86_64.rpm

b) yum前端管理工具

這是一個將前面的所有rpm包匯總成庫在用戶端尋找庫並進行軟

件管理的工具,將易用性進行大大提高,方便使用者以多種形式進行

rpm包的管理操作.常見的方式http,ftp,nfs,file等等.當然

前提是配置好 /etc/yum.repos.d/*.repo 的參數.

*.repo參數一覽

1234567 [media] repoid唯一 name=media name名稱自定 baseurl= file : ///media/ 協議路徑 enabled=0 是否啟用該庫 gpgcheck=1 是否進行身份審查 gpgkey= file : ///media/RPM-GPG-KEY-CentOS-6 KEY cost=1000 使用庫代價(多庫)

# yum 常用命令一覽

12345678 yum install mysql 安裝包 yum erase mysql 卸載包 yum update mysql 可升級一個或多個包 yum list mysql 查看庫上所有包 yum repolist 查看庫上包數量 yum grouplist 組別資訊(分類管理組件) yum groupinstall 安裝組包 yum groupremove 刪除群組包

c) 源碼安裝

# 0 首先去內網ftp伺服器中下載nginx的源碼包,當然你也可以

去nginx官網這裡download最新的nginx源碼

123 lftp ftp : //172 .16.0.1 /pub/Sources/sources/nginx/ get nginx-1.4.2. tar .gz bye

# 1 解壓縮nginx

12 tar -xf nginx-1.4.2. tar .gz rm -rf nginx-1.4.2. tar .gz

# 2 在編譯nginx之前,先安裝nginx的依賴包pcre-devel

1 yum -y install pcre-devel

# 3 完成pcre-delel後,指定nginx編譯bin目錄及conf檔案目錄

1 . /configure --prefix= /usr/local/nginx --conf-path= /usr/local/nginx/nginx .conf

# 4 編譯並安裝nginx

1 make && make install

# 5 啟動nginx服務

1 /usr/local/nginx/sbin/nginx

# 6 查看連接埠狀態,此時應該看到80連接埠的出現

1 netstat -tnl | grep ":80"

# 7 命令測試及查看檔案已證安裝狀態

12 wget http: //localhost stat . /index .html

# 00 到此為止nginx的安裝告一段落,我們可以再處理一些其他事情,

在 # 5 步驟啟動nginx服務的時候,大家可能會發現啟動目錄過長,

並且無法去停止nginx,這些問題繼續困擾著我們.我們接下來繼續處

理一下這些問題.

#01 目錄過長解決反感,其實我們希望使用最短命令實現效果,win32

與linux目標一致,都會有環境變數,這裡便是在修改nginx的環境變數,

使得使用者在任意目錄都可以直接敲出nginx命令

123 vim /etc/profile .d /apache .sh PATH= /usr/local/nginx/sbin :$PATH . source /etc/profile .d /apache .sh # 重新讀取

# 02 搭建好了web伺服器,我們希望其他人也能訪問這裡,於是我們

需要在linux的防火牆上給它留個出口(ps: 大家可以想象互連網就是

一個大版圖,每一台電腦都是一座城池,某天其他城邦的使者來訪

問我,那我必須給它留一個入口)

123 vim /etc/sysconfig/iptables -I INPUT -p tcp --dport 80 -j ACCEPT service iptables restart

# 03 開機啟動(大家可能會發現剛才配置好的nginx,在機器重啟了

之後不能再用了,檢查發現重啟後80連接埠的監聽已失效 # 6 操作,

這些我們需要自己動手去完成一個簡單的指令碼,使其能夠開機啟動,

當然一般情況下nginx會內建這個指令碼,我們來去熟悉一下過程 :)

1 vim /etc/init .d /nginx

#03-a 重中之重linux與win32一樣也會有服務這個說法

# 這裡的意思是告訴機器,當前這是一個服務指令碼,將來需要添加到

# 服務列表時起效果

# chkconfig: 2345 55 25

# description: nginx service

12 # chkconfig: 2345 55 25 # description: nginx service

# 03-b 首先定義了一些基本的變數

# 包括 路徑

1 PATH=$PATH

# 軟體名

1 NAME=nginx

# sbin路徑

1 SBINPATH= /usr/local/nginx/sbin/ $NAME

# 設定檔路徑

1 CONFIGFILE= /usr/local/nginx/ $NAME.conf

# pid檔案(linux守護進程檔案,簡言之線程編號,此檔案存在證明nginx

# 啟動了,如果它不在了,nginx可能也不能訪問)

1 PIDFILE= /usr/local/nginx/logs/ $NAME.pid

# 03-d 判斷sbin檔案與匹配檔案是否存在,否則提示

12 [ -e "$SBINPATH" ] || echo -n "$SBINPATH No such file or directory" [ -e "$CONFIGFILE" ] || exit -n "$CONFIGFILE No such file or directory"

# 03-e 啟動nginx命令 nginx start

123 start() { $SBINPATH -c $CONFIGFILE || echo -n "nginx already running" }

# 03-f 關閉nginx命令 nginx stop

123 stop() { kill -INT ` cat $PIDFILE` || echo -n "nginx not running" }

# 03-g 判斷使用者輸入執行不同的命令

1234567891011121314151617181920 case "$1" in start ) echo -n "$NAME Starting..." start ;; stop ) echo -n "$NAME Stopping..." stop ;; restart ) echo -n "$NAME Restarting..." stop start ;; * ) echo "Usage: /etc/init.d/$NAME {start | stop | restart }" &> /dev/null exit 1 ;; esac exit 0

# 完整代碼 startup.sh

1234567891011121314151617181920212223242526272829303132333435 #!/bin/bash # PATH=$PATH NAME=nginx SBINPATH= /usr/local/nginx/sbin/ $NAME CONFIGFILE= /usr/local/nginx/ $NAME.conf PIDFILE= /usr/local/nginx/logs/ $NAME.pid [ -e "$SBINPATH" ] || echo -n "$SBINPATH No such file or directory" [ -e "$CONFIGFILE" ] || exit -n "$CONFIGFILE No such file or directory" start() { $SBINPATH -c $CONFIGFILE || echo -n "nginx already running" } stop() { kill -INT ` cat $PIDFILE` || echo -n "nginx not running" } case "$1" in start ) echo -n "$NAME Starting..." start ;; stop ) echo -n "$NAME Stopping..." stop ;; restart ) echo -n "$NAME Restarting..." stop start ;; * ) echo "Usage: /etc/init.d/$NAME {start | stop | restart }" &> /dev/null exit 1 ;; esac exit 0

# 03-h 退出vim編輯器 , 為當前指令碼賦予執行許可權

1 chmod +x /etc/init .d /nginx

# 03-i 在服務列表中添加nginx服務,如果剛才 #03-a 的重中之重

你沒有聽取意見的話這裡是沒有辦法完成的 :)

1 chkconfig --add nginx

# 03-j 講nginx的服務添加的開機選項的345層級

# 原諒我在最後激動的時刻再囉嗦一下,善哉善哉 :)

# chkconfig --level 一共分為 0-6 7個層級

# 這個過程與linux的啟動非常有關係,可以參考

# http://apprectice.blog.51cto.com/2214645/1362564

# 345 基本可以對應其上的載入過程

1 chkconfig --level 345 nginx on

# 03-k 這時候你可以隨心所欲的 nginx { start | stop | restart }

# 停止也不會有問題 :)

1 nginx start

d) bin檔案安裝

bin檔案的安裝非常簡單,因為它是shell與rpm的結合體,一般情況

基本不用額外配置,直接執行bin就可以了.

本文出自 “Apprentice” 部落格,請務必保留此出處http://apprentice.blog.51cto.com/2214645/1362887

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.