Showing posts with label centos. Show all posts
Showing posts with label centos. Show all posts

Thursday, February 25, 2010

CentOS4 iscsi initiators

iSCSI initiators 在 CentOS 4 與 CentOS5 使用上有點不一樣

1. 安裝

# yum install iscsi-initiator-utils

2. 設定

# vi /etc/iscsi.conf

DiscoveryAddress=ISCSI_TARGET_HOST_OR_IP
OutgoingUserName=ISCSI_USER_NAME
OutgoingPassword=ISCSI_PASSWORD
LoginTimeout=15

3. 啟用服務

# chkconfig iscsi on
# /etc/init.d/iscsi start

4. 確認

# fdisk -l
# tail -f /var/log/messages
# find /sys/devices/platform/host* -name "block*"

5. 格式化

# fdisk /dev/sdc
# mkfs.ext4 /dev/sdc1

ref

http://www.cyberciti.biz/tips/howto-centos-rhel4-iscsi-initiators.html

Wednesday, October 14, 2009

Nvidia Forcedeth 網卡重開會自動關閉 (power off)的作法參考

目前家裡有幾台 Acer Altos Server, OS: CentOS 4.7 Kernel 2.6.28.9 ,

每當重新開機網卡就會開不起來,除非是 cool reboot

找很一段時間,終於用對關鍵字找到文章 forcedeth eth shutdown

網址 http://www.nvnews.net/vbulletin/showthread.php?t=130438

他是說 forcedeth 會在關機的時候 也把自己設定成關閉(應該是自己的 firmware)

新版的 driver 有提供一些參數在 /etc/modprode.conf 可以改變他的行為

不過我換成 2.6.28.10 就沒有這個問題。

Monday, September 14, 2009

remove linux ati driver

Uninstalling the ATI Linux Proprietary Driver
Uninstalling the ATI Linux Proprietary Driver is dependent on the mode of the
initial installation.
Automatic or Custom Driver Installations
If the ATI Proprietary Linux Driver was installed using either the Automatic or
Custom options, then do the following:
1 Launch the Terminal Application/Window and navigate to the /usr/share/ati
folder
2 With superuser permissions, enter the command "sh ./fglrx-uninstall.sh"
You have now successfully uninstalled the ATI Linux Proprietary Driver.

Sunday, June 28, 2009

快速 dd 的步驟 - 同時要 dd 很多顆

這是血淚的經驗累積.... 按這這樣做比較不會開不起來
有機會再詳述 什樣的情形會 dd 失敗
不過我現在都是改用 CloneZilla 了..

先假設你的 source 放在 sda, 其他要 dd 的放在 sdb,sdc,sdd.....

建議用 Ubuntu 這是最安全的方法 要不然就是 CentOS Rescuse 但你不可以使用 chroot mode


a. 直接 dd 整顆
dd if=/dev/sda of=/dev/sdb bs=10M &
dd if=/dev/sda
這種方法 不用 grub-install

b. 只 dd /dev/sda1

先把 sdb, sdc, sdd 等先 fdisk 成 sda 一樣的 partitions table

I. dd if=/dev/sda1 of=/dev/sdb1 bs=10M &
dd if=/dev/sda1 of=/dev/sdc1 bs=10M &
dd if=/dev/sda1 of=/dev/sdd1 bs=10M &

II. 建 SWAP (CentOS 的 SWAP lable 應該是 SWAP-sda2)
mkswap -L SWAP-sda2 /dev/sdb2
mkswap -L SWAP-sda2 /dev/sdc2
mkswap -L SWAP-sda2 /dev/sdd2

III. 建 Home
mk.ext3 -L /home /dev/sdb3
mk.ext3 -L /home /dev/sdc3
mk.ext3 -L /home /dev/sdd3

IV. grub-install
我通常是把 dd 好的接到第1顆(如果是 CentOS 開機片開機的 一樣要接)
grub-install /dev/sda

Saturday, July 05, 2008

CentOS 4 To 5 無光碟機簡易升級法

一般升級通常用光碟片升級 但有時候機器並無光碟機或是覺得燒光碟片很不環保

但若用 YUM 線上升級方式 步驟繁雜、困難重重請且風險很高

最近研究一個比較簡單的方法 這個方法等同放入光碟片

注意: 要有一個 YUM Server 才能透過網路升級

1. 到 CentOS 的 FTP 網站目錄 isolinux 目錄
例如 CentOS5 i386 位置相當於 /Linux/CentOS/5/os/i386/isolinux/
抓 initrd.img vmlinuz 這兩個檔案 並放到 /boot

2. 修改 /etc/grub.conf
請加入

title upgradeany
root (hd0,0)
kernel /vmlinuz upgradeany
initrd /initrd.img

3. 重新開機 選 upgradeany 開機
就可以升級 CentOS 或是 重新安裝

Monday, March 10, 2008

利用 LFTP 建立 YUM Server

看過很多人用不同的方法來架 YUM Server 各有利弊
在經過一番的選擇後 後來我是選擇使用 LFTP 來架 YUM Server
原因是他的彈性語法簡單易懂 可以搭配 exclude 或 include 來指定要下載的 rpms
例如 openoffice 很少用就可以用 exclude 來排除,
或是 centosplus 你只需要更新 kernel-xxx-centos.plus ,可以 include 只下載需要的部份。

以下是 CentOS 5.X 的範例,為了避免字數過長,將 rpm 放到 /centos 目錄
另外 httpd 的設定,相信大家都會,就不再贅述。

mkdir /centos
cd /centos
wget http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
mkdir -p /centos/5/os/i386

ps. key 要放在 /centos 主目錄,此行亦可以放在 lftp config 裡面

vi centos5-lftp.config
ps. 可以用 -x openoffice 表示不下載 openoffice
以下範例視個人需要,把註解拿掉。若只需要抓一次,建議抓完後註解掉,節省 LFTP 檢查的時間。
寫好後執行

lftp -f centos5-lftp.config

若沒有問題,可以放到 crontab 每星期更新一次就好了 每天更新也沒用
因為 CentOS 更新頻率約一星期一次,而且通常是假日

以下為 centos5-lftp.config 內容
#以下有三個 FTP 站台供選擇
open http://ftp.cs.pu.edu.tw
#open ftp.tcc.edu.tw
#open http://ftp.twaren.net
# only need to get repodata, headers, rpms
#
# For OS, 第一次才需要,抓完後可以註解掉
mirror -e --delete /Linux/CentOS/5/os/i386/repodata /centos/5/os/i386/repodata
mirror -e --delete /Linux/CentOS/5/os/i386/CentOS /centos/5/os/i386/CentOS
#For boot server ,抓完後可以註解掉
mirror -e --delete /Linux/CentOS/5/os/i386/images /centos/5/os/i386/images
mirror -e --delete /Linux/CentOS/5/os/i386/isolinux /centos/5/os/i386/isolinux
#以上四行亦可換成下面一行
#mirror -e --delete /Linux/CentOS/5/os/i386 /centos/5/os/i386
#For update
mirror -e --delete /Linux/CentOS/5/updates/i386/repodata /centos/5/updates/i386/repodata
mirror -e --delete -x openoffice /Linux/CentOS/5/updates/i386/RPMS /centos/5/updates/i386/RPMS
#For extra
#mirror -e --delete /Linux/CentOS/5/extras/i386/repodata /centos/5/extras/i386/repodata
#mirror -e --delete /Linux/CentOS/5/extras/i386/RPMS /centos/5/extrass/i386/RPMS
#For centosplus
mirror -e --delete /Linux/CentOS/5/centosplus/i386/repodata /centos/5/centosplus/i386/repodata
mirror -e --delete /Linux/CentOS/5/centosplus/i386/RPMS /centos/5/centosplus/i386/RPMS


然後就可以將 /etc/yum.repos.d/CentOS-Base.repo
每一行 baseurl 改成你目前的主機 並將 mirrorlist 註解掉
baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
改成 baseurl=http://you.server.com/centos/$releasever/updates/$basearch/

如下。只列出 base, update, exteas, centosplus

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://10.254.1.1/pub/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5

#released updates
[update]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
baseurl=http://10.254.1.1/pub/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
baseurl=http://10.254.1.1/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5
enabled=0

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
baseurl=http://10.254.1.1/pub/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://10.254.1.1/pub/centos/RPM-GPG-KEY-CentOS-5


如果是 CentOS 4.X ,則要多 mirror 一個 headers 的目錄,簡單的範例如下
cat centos4-ftp.config
#以下有三個 FTP 站台供選擇
open http://ftp.cs.pu.edu.tw
#open ftp.tcc.edu.tw
#open http://ftp.twaren.net
# only need to get repodata, headers, rpms
#
# For OS, 第一次才需要,抓完後可以註解掉
mirror -e --delete /Linux/CentOS/4/os/i386 /centos/4/os/i386
# For Update
mirror -e --delete /Linux/CentOS/4/updates/i386/repodata /centos/4/updates/i386/repodata
mirror -e --delete /Linux/CentOS/4/updates/i386/headers /centos/4/updates/i386/headers
mirror -e --delete -x office /Linux/CentOS/4/updates/i386/RPMS /centos/4/updates/i386/RPMS

Tuesday, March 04, 2008

CentOS Guest OS 首次安裝後的 關閉不需要的服務(未完)

如果 CentOS 是當作 VMWare, XEN 或是其他虛擬機器的 Guest OS,有一些服務在虛擬化的環境是沒有意義的,是不需要啟動的,

請先參照這一篇
CentOS Server 首次安裝後的 關閉不需要的服務
http://actychen.blogspot.com/2008/03/centos-server.html

service smartd stop
chkconfig smartd off


服務說明:
smartd 檢查硬碟故障
虛擬的硬碟是無法用這個服務來檢查,只對實體的裝置才有用。

CentOS Server 首次安裝後的 關閉不需要的服務

CentOS 安裝完後,總是開啟一些不需要的服務,於是這是這次筆記的理由。以後裝完系統,我就直接把這下面的指令直接 copy 到 terminal / console 就好了。
下面有註解的如 ISDN 及 Sendmail 目前我是沒有開,如果有需要啟動的,就不要執行關閉。有些服務系統可能沒有安裝,如果沒看到就不需理他。

1. 停止服務
service apmd stop
service autofs stop
service bluetooth stop
service cups stop
service ip6table stop
service iptable stop
#service isdn stop
service hidd stop
service pcscd stop
service pcmcia off
#service sendmail stop
service yum-updatesd stop

2. 設定不啟動
chkconfig apmd off
chkconfig autofs off
chkconfig bluetooth off
chkconfig cups off
chkconfig ip6table off
chkconfig iptable off
#chkconfig idsn off
chkconfig hidd off
chkconfig pcscd off
service pcmcia off
#chkconfig sendmail off
chkconfig yum-updatesd off

服務說明:
apmd 電源管理
沒有 UPS 或是沒有電池的電腦 這是沒用的

autofs 自動掛載服務
通常 server 所需要掛載都是固定的,除非是特殊的目的,否則用處不大。

bluetooth 藍芽
Server 應該是不太需要用藍芽

cups 列印
如果列印需求的機器才需要打開

iptable6,iptable
建議交由防火牆來管理連線, Server 專注服務即可

isdn
如果有需要建立 ISDN 的環境,才需要使用

hidd
一些藍芽的輸入裝置,如鍵盤滑鼠等。 Server 應該不太會用到這些裝置,有點太高檔的感覺!

pcscd
給 smart card 用的, 目前手上沒有這種機器,所以都是關掉的。

pcmcia
給 pcmcia 用的,目前 Server 很少用到 pcmcia ,關掉。

yum-updatesd
yum 自動升級程式, CentOS 5 預設會安裝,不過有時候自動安裝會造成一些不必要的困擾,目前大部分的人建議是不要啟用,尤其是已經上線的主機。


順便找一篇別人寫的文章:
Minimal Services on CentOS 4.4 Mini-HowTo
http://anchorite.org/blog/2006/11/13/minimal-services-on-centos-44-mini-howto/

Redhat Enterprise Linux啟動服務詳解(已非原稿)
http://www.qcode.org/linux/Linux-edition/fedora/2007112443344.html

Tuesday, February 19, 2008

CentOS 線上升級疑難概論

不管是從 Fedora 升到 CentOS, 或是 CentOS 低版升到高版過程中,遇到的問題其實是差不多。

1. centos-release 第一個重要的主角
升級完可以考慮作一次 rpm --rebuild

重建完 rpm db 有助於在做 yum upgrade 時正確檢查相依性

2. glibc 三劍客 glibc , glibc-common, glibc-devel
glibc 是系統最重要的 Library, 如果 glibc 有問題系統將運作不正常,這三個套件最好要同時裝 保證萬無一失。但不管任何時刻,千萬不要移除 glibc ,移除了系統就馬上不能動了。
rpm -Uvh glibc* --nodeps --force

3. 可能的不訴之客 yum 及 rpm
這個兩有時候要先升級有時候又不用,一旦遇到免不了相依一番。

通常是下 yum 時,才發現指令無法執行,只好用 rpm 指令升級 yum 程式。有時候不幸的是 rpm -ivh yum* 也發生問題,可能是因為 rpmdb 毀損或是 rpm 的 lib 版本不對。
rpmdb 毀損用 rpm --rebuild 重建,rpm lib 版本不對 就只好從別台同等級作業系統 copy 過來了

如果要升級 rpm 及 yum 套件 先用 rpm -ivh 檢查相依性,確定所有套件都找齊了,放在同一個目錄才能用 rpm -Uvh * --nodeps 安裝,如果裝不進去,加個 --force 強迫安裝。

記得:若升級 rpm 表示 rpmdb 格式可能會變動喔,一定要做 rpm --rebuild 喔

4. 完整升級
先 vi 一個 /etc/yum-upgrade.conf 用這個設定檔來升級
原來系統的 /etc/yum.repo.d/CentOS-Base.repo 就不要動他
這樣升級完後就不用改回來

下面是 yum-upgrade.conf 請依照本身的狀態去改
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp
tolerant=1
exactarch=1

[upgrade]
name=Centos upgrade
baseurl=http://mirror.centos.org/centos/4/os/$basearch/
exclude=mysql*

[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.centos.org/centos/4/updates/$basearch/

執行 yum -c /etc/yum-upgrade.conf upgrade 升級
如果過程遇到無法解決的相依性程式 就先 rpm -e xxx -nodeps

5. 開機前的檢查
請檢查 /etc/grub/grub.conf 指定 kernel 是否存在於 /boot 下
否則開不了機 那就功虧一簣了

6. 清理圾垃
先看看系統有哪些沒升級完成的套件
rpm -qa | grep FC
rpm -qa | grep fc
rpm -qa | grep legacy

然後用 rpm -e xxx 或是 rpm -e --justdb 刪掉
然後再用 rpm -ivh xxx 安裝

另外一個非常非常重要的事

升級只能前進不能後退,一旦決定升級只能去完成他。升級到一半的系統,裡面新舊程式混雜,是非常不穩定隨時都可能有問題的。就算是倒退,倒退程序絕對比繼續完成還要複雜,如果沒有保握,請先虛擬一個環境測試。

Fedora Core 3 to CentOS4.X

基本上 Fedora Core3 與 CentOS4 是同一代的,就如同 Fedora Core6 與 CentOS5 ,他們 kernel 的版本,以及 package 幾乎都是使用同樣的版本。

有一點要注意的是,如果你有使用 Fedora Legacy 可能會導致某些套件比 CentOS 4 還要新,如果嫌清理舊套件麻煩的話,我是蠻建議考慮再做一次升級,升級到 CentOS5。

以下是我的步驟,過程比別人複雜點,但是比較安全。

1. rpm --import RPM-GPG-KEY-centos4

2. rpm -Uvh --force centos-release-4-0.1.i386.rpm
版本大於4 即可, 如果要升到最新版 就從 CentOS4 目錄抓最新版來用

3. rpm -Uvh --force centos-yumconf-4-2.noarch.rpm
這可不裝 比較後面的 CentOS 4 沒有 centos-yumconf 套件

4. 安裝新的 kernel
rpm -ivh --force --nodeps kernel-2.6.9-5.0.3.EL.i686.rpm

5. 安裝 glibc
rpm -ivh --force --nodeps glibc*

6. rpm --rebuilddb
在升級前, 這已經是標準動作, 先重建 rpm db

7. 設定好 yum-upgrade.conf, 然後執行
yum -c /etc/yum-upgrade.conf upgrade

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1

[upgrade]
name=Centos upgrade
baseurl=http://mirror.centos.org/centos/4/os/$basearch/

[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.centos.org/centos/4/updates/$basearch/

8. 如果沒問題, 再安裝一次 kernel
rpm -ivh --force --nodeps kernel-2.6.9-5.0.3.EL.i686.rpm
先前安裝 kernel 並非完整安裝, 此次讓他再重新安裝一次

9. rpm --rebuilddb
升級完重新開機前 再作一次

10. yum update 看看有沒有其他的要更新.
建議開完再做啦 以免發生變數

11. 更改 /boot/grub/menu.lst 指定用新的 kernel 開機
有時候 kernel 安裝後可能會因為一些問題沒有更新到 grub.conf 如果沒有就要手動加入
順便要檢查一下 kernel , initrd 檔名正不正確

12. 重開機看看. (可能會移除一些舊的 driver, 加上一些新的 driver)

參考文章
http://www.harald-hoyer.de/linux/Switching-from-FC3-to-CentOS4.3
# rpm -Uvh
centos-release-4-3.2.i386.rpm
yum-2.4.2-2.centos4.noarch.rpm
python-elementtree-1.2.6-4.i386.rpm
python-sqlite-1.1.6-1.i386.rpm
sqlite-3.2.2-1.i386.rpm
centos-yumconf-4-4.5.noarch.rpm
lynx-2.8.5-18.2.i386.rpm
indexhtml-4-2.centos4.noarch.rpm
python-urlgrabber-2.9.6-2.noarch.rpm

Friday, February 15, 2008

SELinux VS Service 筆記

SELinux 已經列入 RHCE 考試 如果想要考試的就不能逃避
只是 SELinux 大部分的人沒碰過還是不很了解 要理解也是要花一段時間
所謂「知難行易」 既然了解並不容易 那就從邊作邊學開始吧

以下是我按照英文字母順序 整理出目前我已經知道的 SELinux

Vsftpd
#setsebool ftpd_disable_trans
#service vsftpd restart

Squid
#chcon -u system_u -t squid_cache_t /path/to/cached_ir
#service squid restart

WWW
#chcon -R -h -t httpd_sys_content_t /path/to/html_dir
#service httpd restart

載入 Library (通常是手動安裝的軟體才需要)
chcon -t texrel_shlib_t libxxx.so

Thursday, February 07, 2008

解決 CentOS 改用 XFCE4 畫面進不去的問題

話說 XFCE 是輕量級的桌面 已經仰慕很久
最近幾天終於動手安裝 XFCE

先把 /etc/yum.conf.d/CentOS-Base.repo
的 extra 設成 enabled=1
#yum grouplist 'XFCE-4.4'

裝好後 想節省空間於是就把 GNOME 殺掉
#yum groupremove 'GNOME Desktop Environment'

結果重新開機後卻發現畫面停在 console 進 X window
init: Id "x" respawning too fast: disabled for 5 minitues
於是從 /etc/inittab 開始追查 找到 runlevel 5 時 執行 /etc/X11/prefdm
然後我又找到啟動 XFCE 的指令 startxfce4
下面是 prefdm 部分內容 紅色是我增加的

# Run preferred X display manager
preferred=
if [ -f /etc/sysconfig/desktop ]; then
. /etc/sysconfig/desktop
if [ "$DISPLAYMANAGER" = GNOME ]; then
preferred=/usr/sbin/gdm
elif [ "$DISPLAYMANAGER" = KDE ]; then
preferred=/usr/bin/kdm
elif [ "$DISPLAYMANAGER" = XDM ]; then
preferred=/usr/bin/xdm
elif [ "$DISPLAYMANAGER" = XFCE ]; then
preferred=/usr/bin/startxfce4
elif [ -n "$DISPLAYMANAGER" ]; then
preferred=$DISPLAYMANAGER
fi
fi

又把 desktop 改了
#more /etc/sysconfig/desktop
DESKTOP="XFCE"
DISPLAYMANAGER="XFCE"

結果進去是進去了 但發生兩件奇怪的事
1. 不需要登入 就進到桌面 2. 語系 Locale 失效了, 由中文便英文

後面才知到 XFCE 本身沒有 Desktop Manager
所以要給他一個如 gdm (for GNOME), kdm (for KDE)

#yum install gdm
然後把 DISPLAYMANAGER 設成 gnome
#more /etc/sysconfig/desktop
DESKTOP="XFCE"
DISPLAYMANAGER="GNOME"

/etc/X11/perfdm 就改回原來的樣子 即可
重開後 就找回登入畫面 及恢復正常的語系了

Monday, February 04, 2008

CentOS 4 upgrade CentOS 5

CentOS4 升級到 CentOS5 有點麻煩
試了好幾次 總算整理出一個比較順利的步驟

以下是 CentOS4.6 升級到 CentOS5.1 過程
安裝之前請開兩個以上 telnet session, 因為升級過程中(Step2後) 就無法再開新的連線
另外該停服務先停 以免發生一些慘事 尤其是資料庫如 mysql

1.首先先安裝 centos-release 套件
centos-release-5-1.0.el5.centos.1.i386.rpm
centos-release-notes-5.1.0-2.i386.rpm

rpm -Uvh centos-release-5-1.0.el5.centos.1.i386.rpm centos-release-notes-5.1.0-2.i386.rpm

2. 安裝升級前套件
下載以下 rpm 放在 /tmp/Upgrades, 以下為 5.1
beecrypt-4.1.2-10.1.1.i386.rpm
beecrypt-python-4.1.2-10.1.1.i386.rpm
binutils-2.17.50.0.6-5.el5.i386.rpm
db4-4.3.29-9.fc6.i386.rpm
elfutils-0.125-3.el5.i386.rpm
elfutils-libelf-0.125-3.el5.i386.rpm
elfutils-libs-0.125-3.el5.i386.rpm
glibc-2.5-18.i686.rpm
glibc-common-2.5-18.i386.rpm
glibc-devel-2.5-18.i386.rpm
glibc-headers-2.5-18.i386.rpm
krb5-libs-1.6.1-17.el5.i386.rpm
libselinux-1.33.4-4.el5.i386.rpm
libsepol-1.15.2-1.el5.i386.rpm
libxml2-2.6.26-2.1.2.i386.rpm
libxml2-python-2.6.26-2.1.2.i386.rpm
m2crypto-0.16-6.el5.1.i386.rpm
mcstrans-0.2.6-1.el5.i386.rpm
neon-0.25.5-5.1.i386.rpm
openssl-0.9.8b-8.3.el5_0.2.i686.rpm
popt-1.10.2-47.el5.i386.rpm
python-2.4.3-19.el5.i386.rpm
python-devel-2.4.3-19.el5.i386.rpm
python-elementtree-1.2.6-5.i386.rpm
python-sqlite-1.1.7-1.2.1.i386.rpm
python-urlgrabber-3.1.0-2.noarch.rpm
readline-5.1-1.1.i386.rpm
rpm-4.4.2-47.el5.i386.rpm
rpm-libs-4.4.2-47.el5.i386.rpm
rpm-python-4.4.2-47.el5.i386.rpm
yum-3.0.5-1.el5.centos.5.noarch.rpm

執行安裝
cd /tmp/Upgrades
rpm -Uvh *.rpm --nodeps --force

3. 測試一下 yum upgrade 發生的問題
[root@test Upgrades]# yum -c /etc/yum-upgrade.conf upgrade
Traceback (most recent call last):
File "/usr/bin/yum", line 4, in ?
import yum
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 36, in ?
import config
File "/usr/lib/python2.4/site-packages/yum/config.py", line 23, in ?
from parser import ConfigPreProcessor
File "/usr/lib/python2.4/site-packages/yum/parser.py", line 3, in ?
import urlgrabber
File "/usr/lib/python2.4/site-packages/urlgrabber/__init__.py", line 53, in ?
from grabber import urlgrab, urlopen, urlread
File "/usr/lib/python2.4/site-packages/urlgrabber/grabber.py", line 406, in ?
import keepalive
File "/usr/lib/python2.4/site-packages/urlgrabber/keepalive.py", line 339, in ?
class HTTPSHandler(KeepAliveHandler, urllib2.HTTPSHandler):
AttributeError: 'module' object has no attribute 'HTTPSHandler'

出現上面的錯誤 其實是缺少新版的 wget 及 keyutils-libs 跟 python 一點都無關
這個錯誤實在很難解 還曾試著把別台正確的 /usr/lib/python2.4 拷貝一份也沒用
想了很久 後來忽然想到 CentOS Wiki 提到升級 CentOS 4.4ServerCD to 5
有提到 wget 於是把把 CentOS5 的 wget 及相依 keyutils-libs 套件裝上去
yum 又活過來了

安裝之前也是要重建 rpmdb 否則是無法安裝的
rm -f /var/lib/rpm/__*
rpm --rebuilddb
rpm -Uvh wget-1.10.2-7.el5.i386.rpm keyutils-libs-1.2-1.el5.i386.rpm --nodeps --force

4. 安裝新版 kernel 以及移除舊版 kernel
a. 安裝新版 kernel
rpm -ivh kernel-2.6.18-53.el5.i686.rpm --nodeps

b. 移除舊版 kernel
用 --justdb 選項移除 rpmdb 刪除舊版的 kernel 資訊, 不做真正移除
等下 yum upgrade 才不會出現舊版的 kernel 與新的 rpm 產生相依性或衝突的問題
rpm -e --nodeps --justdb kernel-2.6.9-67.EL kernel-2.6.9-67.0.1.EL

5. 升級整個系統
正是要做 整個 upgrade 之前, 要先做 rpm db 的重整 rebuild
rm -f /var/lib/rpm/__*
rpm --rebuilddb
好了 可以開始 upgrade 了
yum -c /etc/yum-upgrade.conf upgrade

做完後還是得重建 rpm db 一次
rm -f /var/lib/rpm/__*
rpm --rebuilddb

然後請檢察 /etc/grub.conf 及 /boot 是否正確再開機

6. 清理垃圾
由於升級過程中 有些軟體可以接受比較舊的版本
導致還是會有些軟體停留在 el4 而不是 el5
我們可以檢查還有哪些是 el4
rpm -qa | grep el4, rpm -qa | grep EL4

建議先用 yum list xxx 查看有哪幾個版本
然後用 rpm -e xxx -nodeps 移除
再用 yum install xxx 裝上新版

參考文章
CentOS Wiki - Upgrade Server 4.4 to 5
http://wiki.centos.org/HowTos/MigrationGuide/ServerCD_4.4_to_5
在線centos4.4升級到centos5.0
http://www.haw-haw.org/node/242

Sunday, January 27, 2008

CentOS 3 升級到 CentOS 4

基本動作與參考文章差不多 我再加上一些說明

1. rpm --import RPM-GPG-KEY-centos4

2. rpm -Uvh --force centos-release-4-0.1.i386.rpm
版本大於4 即可, 如果要升到最新版 就從 CentOS4 目錄抓最新版來用

3. rpm -Uvh --force centos-yumconf-4-2.noarch.rpm
這可不裝 比較後面的 CentOS 4 沒有 centos-yumconf 套件

4. 安裝新的 kernel
rpm -ivh --force --nodeps kernel-2.6.9-5.0.3.EL.i686.rpm
這裡會有一個錯誤 - 無法 mkinitrd - 因為此時沒有新版 mkinitrd
沒關係 升級完所有套件再做一次安裝一次 kernel 就會重作
ps. 有的文章過程比較複雜 如
http://www.webhostingtalk.com/archive/index.php/t-609846.html
sprintserve 寫的 Step6

cd /boot
mkinitrd kernel.img `rpm -qa|grep '^kernel'|grep 2.6|cut -f2- -d '-'`
mv initrd-2.6.9-55.EL.img initrd-2.6.9-55.EL.img.original
mv kernel.img initrd-2.6.9-55.EL.img

5. 安裝 udev
rpm -ivh --force --nodeps udev-039-10.8.EL4.i386.rpm

6. rpm --rebuilddb
在升級前, 這已經是標準動作, 先重建 rpm db

7. 設定好 yum-upgrade.conf, 然後執行
yum -c /etc/yum-upgrade.conf upgrade

這裡是一個網路安裝的範例檔 /etc/yum-upgrade.conf
注意:若有不想更新的程式請加 exclude, 如 exclude=mysql*

[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1

[upgrade]
name=Centos upgrade
baseurl=http://mirror.centos.org/centos/4/os/$basearch/
exclude=mysql*

[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.centos.org/centos/4/updates/$basearch/
exclude=mysql*

如果進行 yum upgrade 遇到相依性的問題,建議先移除有相依性的程式
如 imap, imap-devel, perl-DBD-MySQL
ref http://www.webhostingtalk.com/archive/index.php/t-609846.html

8. 如果沒問題, 再安裝一次 kernel
rpm -ivh --force --nodeps kernel-2.6.9-5.0.3.EL.i686.rpm
先前安裝 kernel 並非完整安裝, 此次讓他再重新安裝一次

9. rpm --rebuilddb
升級完重新開機前 再作一次

10. yum update 看看有沒有其他的要更新.
建議開完再做啦 以免發生變數

11. 更改 /boot/grub/menu.lst 指定用新的 kernel 開機
有時候 kernel 安裝後可能會因為一些問題沒有更新到 grub.conf 如果沒有就要手動加入
順便要檢查一下 kernel , initrd 檔名正不正確

12. 重開機看看. (可能會移除一些舊的 driver, 加上一些新的 driver)


MySQL 的問題

MySQL, 這個由 3.x 升到 4.1.x. 如果有裝 mysql-server, 會有問題.
我們的處理方式是先強迫安裝
rpm -Uvh --force --nodeps \
mysql-4.1.7-4.RHEL4.1.i386.rpm \
mysql-server-4.1.7-4.RHEL4.1.i386.rpm \
mysqlclient10-3.23.58-4.RHEL4.1.i386.rpm
然後在 yum-upgrade.conf 的 [main] 中加上
exclude=mysql-server mysql
後就可以避開這個問題. 至於原本的 mysql 資料庫, 原則上檔案可以相容, 並不用 dump 出來再 restore. 不過.... 如果你怕有問題... 就自己 dump 吧.


參考文章
http://phorum.study-area.org/index.php/topic,28648.html
http://www.webhostingtalk.com/archive/index.php/t-609846.html

Redhat 9 升級到 CentOS 3.x

1. 安裝 yum
到 http://linux.duke.edu/projects/yum/download.ptml 抓 yum 2.0.7 回來安裝.
或是安裝 CentOS 3.X 的 yum-2.0.x.rpm

2. 安裝 source

a . Local 作法
a1. 把 CentOS 3.X 的光碟中的 RPMS 目錄複製到主機中. 如 /centos/os/RPMS 下頭. 共有三片光碟.
a2. 如果有要順便更新 updates 就把 CentOS 網站上頭的 updates 下頭的 rpm 也抓一份回來, 放到 /centos/updates/RPMS 下頭.
a3. 建立兩個目錄 /centos/os/headers 與 /centos/updates/headers, 然後在 /centos/os 與 /centos/updates 下頭執行這個指令:

cd /centos/os
yum-arch .
cd /centos/updates
yum-arch .
以便於建立 yum 的資料庫.

a4. 建立 /etc/yum-upgrade.conf 如下:
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1

[upgrade]
name=Centos upgrade
baseurl=file://localhost/centos/os/

[update]
name=CentOS-$releasever - Updates
baseurl=file://localhost/centos/updates/

b. 網路安裝
如果要直接透過網路更新 /etc/yum-upgrade.conf 如下
代碼:
#
[main]
cachedir=/var/cache/yum
debuglevel=2
logfile=/var/log/yum.log
pkgpolicy=newest
distroverpkg=redhat-release
installonlypkgs=kernel kernel-smp kernel-hugemem kernel-enterprise kernel-debug kernel-unsupported kernel-smp-unsupported kernel-hugemem-unsupported
tolerant=1
exactarch=1

[upgrade]
name=Centos upgrade
baseurl=http://mirror.centos.org/centos/3/os/$basearch/

[update]
name=CentOS-$releasever - Updates
baseurl=http://mirror.centos.org/centos/3/updates/$basearch/

3. 進行更新
a 匯入 CentOS 的 PGP Key.
rpm --import http://mirror.caosity.org/centos-3/RPM-GPG-KEY-CentOS-3
檔案在光碟內也有, 也可以直接由光碟匯入

b. 更新前最好使用 rpm -e 指令, 移除非必要的 套件
如果在 yum update 遇到錯誤 需要重複執行這個動作

c. 先更新 kernel 與 rpm.
代碼:
rpm -vv --rebuilddb
(這個動作是要重建 rpm db, 把 Redhat9 的 rpm db 換成 CentOS 3 的 rpm db 以利下個更新的動作)
yum -y -t -c /etc/yum-upgrade.conf upgrade rpm kernel
rpm -vv --rebuilddb
再次更新 rpmdb 以確保系統更新後的 rpm db 沒有問題
yum -y -t -c /etc/yum-upgrade.conf upgrade rpm kernel

安裝完先重新開機

d. 再更新整個系統
代碼:
yum -y -t -c /etc/yum-upgrade.conf upgrade

等 yum 跑完後, 你的 RedHat 9 就變成 CentOS 3.x 了, 再重開機使用新的 kernel.


參考文章
http://www.owlriver.com/tips/centos-31-ex-rhl-9/
http://phorum.study-area.org/index.php/topic,28648.html

Monday, January 21, 2008

舊版 Centos 光碟映像檔及軟體下載

我想 安裝舊版作業系統 應該很少人會這樣做
通常是軟、硬體限制 才會需要安裝舊版的作業系統

舊版的 CentOS 光碟映像檔或是軟體 可以到 CentOS Vault 下載
http://vault.centos.org/

之前裝 Linux 版 的Sysgate Enforcer Linux 就遇到非要 REHL3
而且只支援特定版本 Kernel 2.4.21-27EL or Kernel 2.4.21-4EL
ref: http://www.savetime.com.tw/new_symantec/se_Network_Access_Control.asp

記得善用 Google 精神 ex. kernel 2.4.21-27 site:vault.centos.org

Sunday, January 20, 2008

RPM repository 收集

以下是我搜尋到一些 RPM Repository,如果有一些軟體原本的 Linux Distribution 並沒有提供,可以去找找看。除了 RPM phone.net 不支援 yum 安裝,其他都可以安裝各家的 xxxx-release 的 package,使用 yum 安裝或是移除軟體。

ATrpms - For RHEL3, RHEL4, RHEL5, Fedora7, Fedora8
http://www.atrpms.net/

DAG: RPM packages for Red Hat, RHEL, CentOS and Fedora
http://dag.wieers.com/rpm

Extra Packages for Enterprise Linux (EPEL)
http://fedoraproject.org/wiki/EPEL
EPEL 是 Fedora 下的一個計畫,裡面有 EPEL 4, EPEL 5 分別支援 RHEL4, RHEL5。

Livina - Only For Fedora6, Fedora7, Fedora8
http://rpm.livna.org/rlowiki

RPM phone.net
http://rpm.pbone.net

Saturday, November 25, 2006

Mirror CentOS update

install mirrordir from http://dag.wieers.com/packages/mirrordir/


yum-arch -l /var/www/html/yum/centos/4/os/i386 /var/www/html/yum/centos/4/os/i386/CentOS/RPMS



yum-arch /var/www/html/yum/centos/4/updates/i386/RPMS

createrepo /var/www/html/yum/centos/4/os/i386/CentOS/RPMS
createrepo /var/www/html/yum/centos/4/updates/i386/RPMS