rh6.7 : 升级yum

前端之家收集整理的这篇文章主要介绍了rh6.7 : 升级yum前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

想更新rh6.7企业版上的gcc,才能编译手头的工程.
先要使yum可以更新非本地的软件,再从外网升级yum.
实验还没做完,先记录这些.

实验

rh企业版要升级,正常是要有企业账号. 个人账号不好使.
网上的方法是找centos版的yum配置文件进行修改和替换.
网上有个原版centos的rhel-source.repo,下载后,将文件中的$releasever文本都换成6,然后替换到/etc/yum.repos.d/rhel-source.repo.

#
# @file rhel-souce.repo
# please replace all $releasever to 6,means the file's configure is for centos6
# after modify,please replace to /etc/yum.repos.d/rhel-source.repo
#

[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[rhel-source-beta]
name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source
baseurl=ftp://ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os/SRPMS/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta,file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.163.com/centos/6/os/x86_64/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.163.com/centos/6/updates/x86_64/repodata/repomd.xml
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

#packages used/produced in the build but not released
#[addons]
#name=CentOS-$releasever - Addons
#baseurl=http://mirrors.163.com/centos/$releasever/addons/$basearch/
#gpgcheck=1
#gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=http://mirrors.163.com/centos/6.0/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-6
#additional packages that extend functionality of existing packages

[centosplus]
name=CentOS-$releasever - Plus
baseurl=http://mirrors.163.com/centos/6.0/centosplus/$basearch/
gpgcheck=1
enabled=0

升级yum

替换完配置文件后,可以从外网进行yum了.
现在升级yum,写了一个很挫的脚本来进行yum升级.
用wget时,发现centos镜像站点上的目录结构和文件名已经变了,如果以后还要用这个脚本,要去镜像站点先确认下,文件名称和位置,如果变了,替换脚本中的对应文件名称和下载点url.
如果将博客中的脚本贴到.sh后,需要在vi或si中处理一下回车符号为unix回车符号.

# @file wget_yum.sh
# @brief when copy wget_yum.sh to linux,chmod 777 wget_yum.sh,then run wget_yum.sh
# chmod 777 wget_yum.sh
# wget_yum.sh

function sh_main {
    clear
    printf "================================================================================\n"
    printf "================================================================================\n"
    printf "================================================================================\n"
    printf "================================================================================\n"
    printf "================================================================================\n"
    printf "================================================================================\n"
    printf "wget yum begin...\n"
    printf "================================================================================\n"
# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum*.rpm,have 31 rpm
# and need install some depend rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
# yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm
    fn_wget 0 yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
# fn_install yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-3.2.29-81.el6.centos.noarch.rpm
    fn_wget 0.1 yum-3.2.29-81.el6.centos.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
# fn_install yum-3.2.29-81.el6.centos.noarch.rpm

# have depend each other,must install together 
    rpm --install yum-plugin-fastestmirror-1.1.30-40.el6.noarch.rpm yum-3.2.29-81.el6.centos.noarch.rpm

    fn_wget 0.30 deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

    fn_wget 0.30 python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm

    fn_wget 0.3 python-decoratortools-1.7-4.1.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install  python-decoratortools-1.7-4.1.el6.noarch.rpm

    fn_wget 0.2 createrepo-0.9.9-26.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install createrepo-0.9.9-26.el6.noarch.rpm

# python-urlgrabber-3.9.1-11.el6.noarch.rpm 
    rpm -aq|grep python-urlgrabber|xargs rpm -e --nodeps
    fn_wget 1 python-urlgrabber-3.9.1-11.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install python-urlgrabber-3.9.1-11.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-NetworkManager-dispatcher-1.1.30-40.el6.noarch.rpm
    fn_wget 2 yum-NetworkManager-dispatcher-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-NetworkManager-dispatcher-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-cron-3.2.29-81.el6.centos.noarch.rpm
    fn_wget 3 yum-cron-3.2.29-81.el6.centos.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-cron-3.2.29-81.el6.centos.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-Metadata-parser-1.1.2-16.el6.x86_64.rpm
    fn_wget 4 yum-Metadata-parser-1.1.2-16.el6.x86_64.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-Metadata-parser-1.1.2-16.el6.x86_64.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-aliases-1.1.30-40.el6.noarch.rpm
    fn_wget 5 yum-plugin-aliases-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-aliases-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-auto-update-debug-info-1.1.30-40.el6.noarch.rpm
    fn_wget 6 yum-plugin-auto-update-debug-info-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-auto-update-debug-info-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-changelog-1.1.30-40.el6.noarch.rpm
    fn_wget 7 yum-plugin-changelog-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-changelog-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-filter-data-1.1.30-40.el6.noarch.rpm
    fn_wget 9 yum-plugin-filter-data-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-filter-data-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-fs-snapshot-1.1.30-40.el6.noarch.rpm
    fn_wget 10 yum-plugin-fs-snapshot-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-fs-snapshot-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-keys-1.1.30-40.el6.noarch.rpm
    fn_wget 11 yum-plugin-keys-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-keys-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-list-data-1.1.30-40.el6.noarch.rpm
    fn_wget 12 yum-plugin-list-data-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-list-data-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-local-1.1.30-40.el6.noarch.rpm
    fn_wget 13 yum-plugin-local-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-local-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-merge-conf-1.1.30-40.el6.noarch.rpm
    fn_wget 14 yum-plugin-merge-conf-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-merge-conf-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-ovl-1.1.30-40.el6.noarch.rpm
    fn_wget 15 yum-plugin-ovl-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-ovl-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-post-transaction-actions-1.1.30-40.el6.noarch.rpm
    fn_wget 16 yum-plugin-post-transaction-actions-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-post-transaction-actions-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-priorities-1.1.30-40.el6.noarch.rpm
    fn_wget 17 yum-plugin-priorities-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-priorities-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-protectbase-1.1.30-40.el6.noarch.rpm
    fn_wget 18 yum-plugin-protectbase-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-protectbase-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-ps-1.1.30-40.el6.noarch.rpm
    fn_wget 19 yum-plugin-ps-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-ps-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-remove-with-leaves-1.1.30-40.el6.noarch.rpm
    fn_wget 20 yum-plugin-remove-with-leaves-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-remove-with-leaves-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-rpm-warm-cache-1.1.30-40.el6.noarch.rpm
    fn_wget 21 yum-plugin-rpm-warm-cache-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-rpm-warm-cache-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-security-1.1.30-40.el6.noarch.rpm
    fn_wget 22 yum-plugin-security-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-security-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-show-leaves-1.1.30-40.el6.noarch.rpm
    fn_wget 23 yum-plugin-show-leaves-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-show-leaves-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-tmprepo-1.1.30-40.el6.noarch.rpm
    fn_wget 24 yum-plugin-tmprepo-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-tmprepo-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-tsflags-1.1.30-40.el6.noarch.rpm
    fn_wget 25 yum-plugin-tsflags-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-tsflags-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-upgrade-helper-1.1.30-40.el6.noarch.rpm
    fn_wget 26 yum-plugin-upgrade-helper-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-upgrade-helper-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-verify-1.1.30-40.el6.noarch.rpm
    fn_wget 27 yum-plugin-verify-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-verify-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-plugin-versionlock-1.1.30-40.el6.noarch.rpm
    fn_wget 28 yum-plugin-versionlock-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-plugin-versionlock-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-presto-0.6.2-1.el6.noarch.rpm
    fn_wget 29 yum-presto-0.6.2-1.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-presto-0.6.2-1.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-updateonboot-1.1.30-40.el6.noarch.rpm
    fn_wget 30 yum-updateonboot-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-updateonboot-1.1.30-40.el6.noarch.rpm

# wget http://mirrors.163.com/centos/6/os/x86_64/Packages/yum-utils-1.1.30-40.el6.noarch.rpm
# fn_wget 31 yum-utils-1.1.30-40.el6.noarch.rpm http://mirrors.163.com/centos/6/os/x86_64/Packages/
    fn_install yum-utils-1.1.30-40.el6.noarch.rpm

    printf "================================================================================\n"
    printf "END\n"
    printf "================================================================================\n"
}

# @fn : fn_wget
# @param file number. e.g. file 1
# @param rpm name have not url,e.g. yum-utils-1.1.30-40.el6.noarch.rpm
# @param rpm's url,e.g. http://mirrors.163.com/centos/6/os/x86_64/Packages/
function fn_wget {
# echo ">> fn_wget --------------------------------------------------------------------------------"
    echo "process $1 ..."
    if [ -f ./$2 ]; then \
# echo "file $1 exists : $2,ok"; \
        printf ""
    else \
    echo "<< fn_wget --------------------------------------------------------------------------------"
        echo "file $1 not exists : download $2 ..."; \
    echo "<< fn_wget --------------------------------------------------------------------------------"
        wget $3$2; \
    fi;
# echo "<< fn_wget --------------------------------------------------------------------------------"
}

# @fn : fn_install
# @param rpm name have not url,e.g. yum-utils-1.1.30-40.el6.noarch.rpm
function fn_install {
    echo ">> fn_install --------------------------------------------------------------------------------"
    echo "install file ./$1 ..."
    if [ -f ./$1 ]; then \
        echo "file $1 exists : ./$1"; \
        rpm --install "./$1"; \
    else \
        echo "install Failed : file not exists : ./$1 ..."; \
    fi;
    echo "<< fn_install --------------------------------------------------------------------------------"
}

sh_main "$@"

总结

升级完yum,就可以去升级gcc到新版本了. 实验还没做. 不升级linux版本,只升级部分组件(e.g. yum,gcc),还是有潜在问题的. 如果用户那的计算机本来运行的溜溜的,谁也不能保证他用的现有软件是否会依赖升级后的组件. 最好的方法,还是不升级用户计算机上的任何组件.

猜你在找的Bash相关文章