目前在 CentOS Linux 官方網站上的 Mirror 站台,只列出網路連線速度在 Tier 1 (OC3 or faster) 以上的站台
分別是樹德科技大學、義守大學、中山大學
CentOS Linux 5.10 Release
在信箱的更新通知了,發現可以更新的套件有到 51 個檔案
更新了一下,發現已經升級到 5.10 版了!
之前的 CentOS 4.x 最多都只到 CentOS 4.9 版
# cat /etc/redhat-release
CentOS release 5.10 (Final)[@more@]CentOS Linux 5.10 版下載
i386
頭城國小
ftp://140.111.74.109/CentOS/5.10/isos/i386/
中山大學
http://ftp.nsysu.edu.tw/CentOS/5.10/isos/i386/
x86_64
頭城國小
ftp://140.111.74.109/CentOS/5.10/isos/x86_64/
中山大學
http://ftp.nsysu.edu.tw/CentOS/5.10/isos/x86_64/
使用架設完成的 Scientific Linux 6 Mirror 站台當成更新來源
底下是設定步驟:
1. 先備份原設定檔
# mv /etc/yum.repos.d/sl.repo /etc/yum.repos.d/sl.repo.`date +%F`
2. 下載已經修改好的設定檔
以 Scientific Linux 6.x 為例
# wget ftp://140.111.74.109/Linux/sl.repo.6
# mv sl.repo.6 /etc/yum.repos.d/sl.repo
3. 去除舊的 yum cache
# yum clean all
4. 開始進行更新
# yum update
列出取不到 IP 的網路卡卡號
針對一些不容易查到網路卡卡號的設備
# cat /var/log/messages | grep “no free leases” | awk ‘{OFS=”,”}{print $1,$2,$8,$10,$12}’ | sort | uniq
Oct,15,00:0c:29:67:73:72,eth0:,140.111.74.0/24:
Oct,15,00:11:93:88:7a:00,eth0:,140.111.74.0/24:
Oct,15,00:14:2a:3e:c7:5e,eth2:,192.168.250.0/24:
Oct,15,00:14:2a:3e:d1:00,eth2:,192.168.250.0/24:
Oct,15,00:26:51:0d:53:40,eth0:,140.111.74.0/24:
Oct,15,00:26:5a:be:5a:88,eth1:,192.168.249.0/24:
Oct,15,14:7d:c5:9f:68:b1,eth2:,192.168.250.0/24:
Oct,15,18:34:51:c0:40:14,eth2:,192.168.250.0/24:
Oct,15,6c:62:6d:63:8f:80,eth0:,140.111.74.0/24:
[@more@]或
# awk ‘{OFS=”,”}/no free leases/{print $1,$2,$8,$10,$12}’ /var/log/messages | sort | uniq
Oct,15,00:0c:29:67:73:72,eth0:,140.111.74.0/24:
Oct,15,00:11:93:88:7a:00,eth0:,140.111.74.0/24:
Oct,15,00:14:2a:3e:c7:5e,eth2:,192.168.250.0/24:
Oct,15,00:14:2a:3e:d1:00,eth2:,192.168.250.0/24:
Oct,15,00:26:51:0d:53:40,eth0:,140.111.74.0/24:
Oct,15,00:26:5a:be:5a:88,eth1:,192.168.249.0/24:
Oct,15,14:7d:c5:9f:68:b1,eth2:,192.168.250.0/24:
Oct,15,18:34:51:c0:40:14,eth2:,192.168.250.0/24:
Oct,15,6c:62:6d:63:8f:80,eth0:,140.111.74.0/24:
放棄 Mirror 全部的 Scientific Linux
離線安裝 Windows Live
現在很多軟體在安裝時,都是直接從網路上下載下來安裝,所以安裝檔都非常小,這樣的好處就是可以讓使用者在安裝時,都是目前的最新版本,但有時候在安裝軟體時,電腦沒有連上網路,這時候安裝就會出現問題。
以 Windows Live 為例,安裝時會依照要安裝的軟體,再到網路上下載下來安裝[@more@]個人很不喜歡這樣的安裝方式,比較喜歡離線安裝,就像是 Windows 平台的修正檔,也比較習慣離線安裝,所以在網路上搜尋了一下,終於在微軟的官網上,找到解決的方法。
下載網址:
http://wl.dlservice.microsoft.com/download/7/0/0/700CB50E-C1CB-4550-B513-A6B8A184D98D/zh-tw/wlsetup-all.exe
網路安裝和離線安裝的檔案大小比較
semanage 指令找不到
semanage 是一個在 Linux 中設定 SELinux 權限的工具,但預設似乎不會安裝,所以要用的時候找不到。
找不到這一個程式
# which semanage
/usr/bin/which: no semanage in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
系統中沒有安裝
# rpm -qa | grep semanage
libsemanage-2.0.43-4.2.el6.x86_64
yum search 也找不到
# yum search semanage
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Warning: No matches found for: semanage
No Matches found
[@more@]查詢哪一個套件有提供這一個程式
# yum provides /usr/sbin/semanage
Loaded plugins: downloadonly, fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.twaren.net
* extras: ftp.twaren.net
* updates: ftp.twaren.net
policycoreutils-python-2.0.83-19.30.el6.x86_64 : SELinux policy core python utilities
Repo : base
Matched from:
Filename : /usr/sbin/semanage
終於找到了,是 policycoreutils-python 這一個套件
進行安裝
# yum install policycoreutils-python
wget 指令
最近想要把原本 Mirror 在別台的 Scientific Linux 複製到新的 CentOS Mirror 主機,但一直無法成功,使用了 lftp / ncftp 來下載,似乎不支援下載整個目錄,使用 mirrordir 也會遇到 ISO 檔案不能超過 2G 的問題,看來似乎只能使用 rsync 的方式來處理,因為單單一個 Scientific 6 就高達 36x G,重新再 Mirror 一次真是有些累。
後來想到可以使用 wget 的指令來解決這樣的問題,wget 的用法及參數非常繁多,可以先查看一下。[@more@]# wget –help
GNU Wget 1.12,非互動式檔案下載工具。
用法: wget [選項]… [URL]…
長選項必須用的參數在使用短選項時也是必須的。
啟動:
-V, –version 顯示 Wget 版本並離開
-h, –help 印出這段說明文字
-b, –background 啟動後進入背景作業
-e, –execute=指令 執行 ‘.wgetrc’ 形式的指令
紀錄訊息及輸入檔案:
-o, –output-file=檔案 將紀錄訊息寫入<檔案>中
-a, –append-output=檔案 將紀錄訊息加入<檔案>末端
-d, –debug 印出偵錯訊息
-q, –quiet 安靜模式 (不輸出訊息)
-v, –verbose 詳細輸出模式 (預設使用這個模式)
-nv, –non-verbose 關閉詳細輸出模式,但不啟用安靜模式
-i, –input-file=FILE download URLs found in local or external FILE.
-F, –force-html 以 HTML 方式處理輸入檔
-B, –base=URL resolves HTML input-file links (-i -F)
relative to URL.
下載:
-t, –tries=次數 設定重試次數 (0 表示無限)
–retry-connrefused 即使連線被拒仍然會不斷嘗試
-O –output-document=檔案 將資料寫入指定檔案中
-nc, –no-clobber 不覆寫已經存在的檔案
-c, –continue 繼續下載已下載了一部份的檔案
–progress=方式 選擇下載進度的表示方式
-N, –timestamping 除非遠端檔案比較新,否則不下載遠端檔案
-S, –server-response 顯示伺服器回應訊息
–spider 不下載任何資料
-T, –timeout=秒數 指定所有時限為同一數值
–dns-timeout=秒數 指定 DNS 查找主機的時限
–connect-timeout=秒數 指定連線時限
–read-timeout=秒數 指定讀取資料的時限
-w, –wait=秒數 每次下載檔案之前等待指定秒數
–waitretry=秒數 每次重覆嘗試前稍等一段時間 (由 1 秒至指
定秒數不等)
–random-wait 每次下載之前隨機地指定等待的時間
–no-proxy 禁止使用代理伺服器
-Q, –quota=大小 設定下載資料的限額大小
–bind-address=位址 使用本機的指定位址 (主機名稱或 IP) 進行連線
–limit-rate=速率 限制下載速率
–no-dns-cache 不記憶 DNS 查找主機的資料
–restrict-file-names=OS 只使用作業系統能夠接受的字元作為檔案字元
–ignore-case ignore case when matching files/directories.
-4, –inet4-only 只會連接 IPv4 地址
-6, –inet6-only 只會連接 IPv6 地址
–prefer-family=FAMILY 優先採用指定的位址格式,可以是 IPv6、IPv4
或者 none
–user=用戶 指定 ftp 和 http 用戶名稱
–password=PASS 指定 ftp 和 http 密碼
–ask-password prompt for passwords.
–no-iri turn off IRI support.
–local-encoding=ENC use ENC as the local encoding for IRIs.
–remote-encoding=ENC use ENC as the default remote encoding.
目錄:
-nd –no-directories 不建立目錄
-x, –force-directories 強制建立目錄
-nH, –no-host-directories 不建立含有遠端主機名稱的目錄
–protocol-directories 在目錄中加上通訊協定名稱
-P, –directory-prefix=名稱 儲存檔案前先建立指定名稱的目錄
–cut-dirs=數目 忽略遠端目錄中指定<數目>的目錄層
HTTP 選項:
–http-user=用戶 指定 HTTP 用戶名稱
–http-passwd=密碼 指定 HTTP 密碼
–no-cache 不使用伺服器中的快取記憶資料
–default-page=NAME Change the default page name (normally
this is `index.html’.).
-E, –adjust-extension save HTML/CSS documents with proper extensions.
–ignore-length 忽略 ‘Content-Length’ 標頭欄位
–header=字串 在連線資料標頭中加入指定字串
–max-redirect maximum redirections allowed per page.
–proxy-user=用戶 設定代理伺服器用戶名稱
–proxy-password=密碼 設定代理伺服器密碼
–referer=URL 在 HTTP 請求中包括 ‘Referer: URL’ 標頭
–save-headers 將 HTTP 連線資料標頭存檔
-U, –user-agent=AGENT 宣稱為 AGENT 而不是 Wget/VERSION
–no-http-keep-alive 不使用 HTTP keep-alive (持久性連線)
–no-cookies 不使用 cookie
–load-cookies=檔案 程式啟動時由指定檔案載入 cookie
–save-cookies=檔案 程式結束後將 cookie 儲存至指定檔案
–keep-session-cookies 會載入和儲存暫時性的 cookie
–post-data=字串 使用 POST 方式送出字串
–post-file=檔案 使用 POST 方式送出檔案內容
–content-disposition honor the Content-Disposition header when
choosing local file names (EXPERIMENTAL).
–auth-no-challenge send Basic HTTP authentication information
without first waiting for the server’s
challenge.
HTTPS (SSL/TLS) 選項:
–secure-protocol=PR 選擇安全通訊協定,可以使用 auto, SSLv2,
SSLv3 或 TLSv1
–no-check-certificate 不檢驗伺服器的憑證
–certificate=檔案 指定用戶端的憑證檔案名稱
–certificate-type=類型 用戶端憑證的類型,可以是 PEM 或 DER
–private-key=檔案 指定私鑰檔案
–private-key-type=類型 私鑰的類型,可以是 PEM 或 DER
–ca-certificate=檔案 載有憑證管理中心 (CA) 簽章的檔案
–ca-directory=目錄 載有憑證管理中心 (CA) 簽章的目錄
–random-file=檔案 作為 SSL 隨機數產生程序 (PRNG) 的來源數據檔案
–egd-file=檔案 產生隨機數據的 EGD socket 檔案名稱
FTP 選項:
–ftp-user=用戶 指定 FTP 用戶名稱
–ftp-password=密碼 設定 FTP 密碼
–no-remove-listing 不刪除 ‘.listing’ 檔案
–no-glob 不展開有萬用字元的 FTP 檔名
–no-passive-ftp 不使用「被動」傳輸模式
–retr-symlinks 在遞迴模式中,下載鏈結指示的目標檔案
(不包括目錄)
遞迴下載:
-r, –recursive 遞迴下載
-l, –level=數字 最大搜尋深度 (inf 或 0 表示無限)
–delete-after 刪除下載後的檔案
-k, –convert-links make links in downloaded HTML or CSS point to
local files.
-K, –backup-converted 將檔案 X 轉換前先備份為 X.orig
-m, –mirror 相等於 -N -r -l inf –no-remove-listing 選項
-p, –page-requisites 下載所有顯示網頁所需的檔案,例如圖片等
–strict-comments 用嚴格方式 (SGML) 處理 HTML 注釋。
遞迴下載時有關接受/拒絕的選項:
-A, –accept=清單 接受的檔案樣式,以逗號分隔
-R, –reject=清單 排除的檔案樣式,以逗號分隔
-D, –domains=清單 接受的網域,以逗號分隔
–exclude-domains=清單 排除的網域,以逗號分隔
–follow-ftp 跟隨 HTML 文件中的 FTP 鏈結
–follow-tags=清單 會跟隨的 HTML 標籤,以逗號分隔
-G, –ignore-tags=清單 會忽略的 HTML 標籤,以逗號分隔
-H, –span-hosts 遞迴模式中可進入其它主機
-L, –relative 只跟隨相對鏈結
-I, –include-directories=清單 準備下載的目錄
-X, –exclude-directories=清單 準備排除的目錄
-np, –no-parent 不進入上層的目錄
請將錯誤報告或建議寄給 <bug-wget@gnu.org>。
列紅色的部分是個人比較可能常用的參數。
# wget -m ftp://140.111.74.3/pub/Linux/scientific
我覺得 Linux 很吸引人的地方就是一個小小的指令,就可以解決困擾多時的問題,其實 Windows 平台也有 wget 可以使用,不過要另外安裝。
解決 duplicate rpm 的問題
有一台 CentOS 6.x 的 Server,在一次更新中途失敗後,每次要更新時就出現如下的訊息:
selinux-policy-3.7.19-195.el6_4.12.noarch is a duplicate with selinux-policy-3.7.19-155.el6_3.14.noarch
setup-2.8.14-20.el6.noarch is a duplicate with setup-2.8.14-16.el6.noarch
sos-2.2-38.el6.centos.2.noarch is a duplicate with sos-2.2-29.el6.noarch
sssd-1.9.2-82.7.el6_4.x86_64 has installed conflicts selinux-policy < (‘0’, ‘3.7.19’, ‘160’): selinux-policy-3.7.19-155.el6_3.14.noarch
sssd-1.9.2-82.7.el6_4.x86_64 is a duplicate with sssd-1.8.0-32.el6.x86_64
sssd-client-1.9.2-82.7.el6_4.x86_64 is a duplicate with sssd-client-1.8.0-32.el6.x86_64
2:tar-1.23-11.el6.x86_64 is a duplicate with 2:tar-1.23-7.el6.x86_64
tzdata-2013c-2.el6.noarch is a duplicate with tzdata-2012j-1.el6.noarch
udev-147-2.46.el6.x86_64 is a duplicate with udev-147-2.42.el6.x86_64
upstart-0.6.5-12.el6_4.1.x86_64 is a duplicate with upstart-0.6.5-12.el6.x86_64
util-linux-ng-2.17.2-12.9.el6_4.3.x86_64 is a duplicate with util-linux-ng-2.17.2-12.7.el6_3.x86_64
看起來像是系統中,重複安裝了二個相同檔名的套件
# rpm -qa | grep samba
samba-common-3.5.10-125.el6.x86_64
samba-3.5.10-125.el6.x86_64
samba-common-3.6.9-151.el6.x86_64
samba4-libs-4.0.0-55.el6.rc4.x86_64
samba-winbind-clients-3.5.10-125.el6.x86_64
samba-winbind-3.6.9-151.el6.x86_64
samba-winbind-clients-3.6.9-151.el6.x86_64
samba-client-3.5.10-125.el6.x86_64
看起來似乎有 2xx 多個重覆的檔案,難道要一一刪除嗎?[@more@]在網路上搜尋了一下,終於找到解決的方案 – AWS 機器上 duplicated RPM 問題 | 小惡魔 – 電腦技術 – 工作筆記 – AppleBOY
解決方式:
1. 安裝 yum-utils 套件
# yum install yum-utils
2. 移除相同的多餘套件
# package-cleanup –cleandupes
Transaction Summary
================================================================================
Remove 229 Package(s)
Installed size: 611 M
Is this ok [y/N]:y
共有 229 個重覆的套件檔,如果要一一刪除,就會累死人了!
後記:
不過,建議在做相關移除的動作時,應先好備份的工作,因為我發現移除之後,它把我的 SSH / MySQL / SNMP Server 等等,全部都移除了,我又手動一一安裝回去,才讓 Server 可以正常運作。
CentOS 6.x 第三方套件庫
RPMForge
http://pkgs.repoforge.org/
http://packages.sw.be/
i386 – http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
x86_64 – http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
安裝方式:
下載 rpmforge-release 套件
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.i686.rpm
# wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
安裝 DAG 的 GPG 金鑰
# rpm –import http://apt.sw.be/RPM-GPG-KEY.dag.txt
安裝套件
# rpm -ivh rpmforge-release-0.5.3-1.el6.rf.*.rpm
# sed -i ‘s/enabled = 1/enabled = 0/g’ /etc/yum.repos.d/rpmforge.repo
[@more@]
EPEL 全名叫做 Extra Packages for Enterprise Linux,有許多可以安裝的套件
http://fedoraproject.org/wiki/EPEL
CentOS 6.x
# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
# sed -i ‘s/enabled=1/enabled=0/g’ /etc/yum.repos.d/epel.repo
Remi:http://rpms.famillecollet.com/
Remi
CentOS 6.x
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -ivh remi-release-6.rpm