[转载]一个自动mount光碟找rpm安装的脚本
来源:互联网 发布:小米域名 编辑:程序博客网 时间:2024/04/29 11:03
不错的文章,存档备查。 一个自动mount光碟找rpm安装的脚本
昨天在rhas4上安装oracle,发现很多rpm依赖的都没有装,一气之下,写了个脚本函数,把rhas4的安装盘都做成iso,让他自动给我找rpm装上依赖去.
[code]
#linux instal CD dir
CD_BASE="/opt/linux_inst"
#linux install CD name
INST_NAME="RHEL4-i386-AS-disc1-jrt.iso RHEL4-i386-AS-disc2-jrt.iso RHEL4-i386-AS-disc3-jrt.iso RHEL4-i386-AS-disc4-jrt.iso"
#Mount point for Linux CD
MNT="/mnt/cdrom_linux"
#oracle RPMs, from oracle patch p4198954
ORACLE_RPMS="/root/oracle_patch/p4198954_21_LINUX"
install_package()
{
local p=$1
local found=0
for cd in $INST_NAME; do
if [ $found -eq 0 ] && [ -f ${CD_BASE}/${cd} ]; then
mount -o loop ${CD_BASE}/${cd} $MNT #&& echo "mount ${CD_BASE}/${cd}"
if ls ${MNT}/RedHat/RPMS | grep $p > /dev/null 2>&1; then
if ! rpm -ivh ${MNT}/RedHat/RPMS/$p.i386.rpm ; then
for p_needed in $(rpm -ivh ${MNT}/RedHat/RPMS/$p.i386.rpm | grep .i386.rpm | grep -v "warning"); do
echo "$p_needed needed"
umount $MNT #&& echo "umount ${CD_BASE}/${cd}"
install_package $(echo $p_needed|sed 's/.i386.rpm//g')
mount -o loop ${CD_BASE}/${cd} $MNT #&& echo "mount ${CD_BASE}/${cd}"
done
echo "reinstall $p"
if ! rpm -ivh ${MNT}/RedHat/RPMS/$p.i386.rpm; then
echo "install package $p in ${CD_BASE}/${cd} failed"
umount $MNT #&& echo "umount ${CD_BASE}/${cd}"
return 1;
fi
else
found=1
fi
fi
umount $MNT #&& echo "umount ${CD_BASE}/${cd}"
fi
done
if [ $found -eq 0 ] && [ -f ${ORACLE_RPMS}/${p}.i386.rpm ]; then
rpm -ivh ${ORACLE_RPMS}/${p}.i386.rpm && found=1
fi
if [ $found -eq 0 ]; then
echo $p " not installed"
return 1
fi
return 0;
}
[/code]
使用的时候要注意比如装gnome-libs-1.4.1.2.90-44.i386.rpm
直接 install_package gnome-libs-1.4.1.2.90-44 ,不要.i386.rpm
昨天在rhas4上安装oracle,发现很多rpm依赖的都没有装,一气之下,写了个脚本函数,把rhas4的安装盘都做成iso,让他自动给我找rpm装上依赖去.
[code]
#linux instal CD dir
CD_BASE="/opt/linux_inst"
#linux install CD name
INST_NAME="RHEL4-i386-AS-disc1-jrt.iso RHEL4-i386-AS-disc2-jrt.iso RHEL4-i386-AS-disc3-jrt.iso RHEL4-i386-AS-disc4-jrt.iso"
#Mount point for Linux CD
MNT="/mnt/cdrom_linux"
#oracle RPMs, from oracle patch p4198954
ORACLE_RPMS="/root/oracle_patch/p4198954_21_LINUX"
install_package()
{
local p=$1
local found=0
for cd in $INST_NAME; do
if [ $found -eq 0 ] && [ -f ${CD_BASE}/${cd} ]; then
mount -o loop ${CD_BASE}/${cd} $MNT #&& echo "mount ${CD_BASE}/${cd}"
if ls ${MNT}/RedHat/RPMS | grep $p > /dev/null 2>&1; then
if ! rpm -ivh ${MNT}/RedHat/RPMS/$p.i386.rpm ; then
for p_needed in $(rpm -ivh ${MNT}/RedHat/RPMS/$p.i386.rpm | grep .i386.rpm | grep -v "warning"); do
echo "$p_needed needed"
umount $MNT #&& echo "umount ${CD_BASE}/${cd}"
install_package $(echo $p_needed|sed 's/.i386.rpm//g')
mount -o loop ${CD_BASE}/${cd} $MNT #&& echo "mount ${CD_BASE}/${cd}"
done
echo "reinstall $p"
if ! rpm -ivh ${MNT}/RedHat/RPMS/$p.i386.rpm; then
echo "install package $p in ${CD_BASE}/${cd} failed"
umount $MNT #&& echo "umount ${CD_BASE}/${cd}"
return 1;
fi
else
found=1
fi
fi
umount $MNT #&& echo "umount ${CD_BASE}/${cd}"
fi
done
if [ $found -eq 0 ] && [ -f ${ORACLE_RPMS}/${p}.i386.rpm ]; then
rpm -ivh ${ORACLE_RPMS}/${p}.i386.rpm && found=1
fi
if [ $found -eq 0 ]; then
echo $p " not installed"
return 1
fi
return 0;
}
[/code]
使用的时候要注意比如装gnome-libs-1.4.1.2.90-44.i386.rpm
直接 install_package gnome-libs-1.4.1.2.90-44 ,不要.i386.rpm
0 0
- [转载]一个自动mount光碟找rpm安装的脚本
- 一个检查并自动安装oralce所需rpm的shell脚本
- 离线自动检查并安装指定RPM的Shell脚本
- 一个mount U盘的脚本
- 【转载】rpm--安装篇
- 发一个网上找的日历脚本
- mount挂载光盘&rpm安装软件
- 记录一个牛逼的 lnmp自动安装脚本
- 怎样查看rpm安装包的安装路径[转载]
- RPM包安装mysql,采用shell脚本实现自动安装、配置与卸载
- Linux-自动安装的脚本
- 自动安装maya2014的脚本
- RPM安装命令总结--转载
- rpm安装和卸载脚本的工作原理[重点关注]
- rpm安装和卸载脚本的工作原理
- mysql 非安装版的一个自动安装脚本及工具(更新版)
- mysql 非安装版的一个自动安装脚本及工具(更新版)
- 自动批量解决本地安装rpm包的dependencies问题
- Oracle 9iR2 for RedHat Enterprise Linux AS4的安装
- 关闭Windows XP的“自动播放”功能
- Android UI之TableLayout(表格布局)
- [转载]RedHat AS4.0(X86) 上安装 Oracle9iR2 数据库
- Java NIO 入门
- [转载]一个自动mount光碟找rpm安装的脚本
- 成为红警高手的基本要素(最后修订版)
- 红警2的经验和秘籍及不是秘笈的秘笈(1)
- 那么一点点感动
- 红警2的经验和秘籍及不是秘笈的秘笈(2)
- myibats知识理解
- 红警2的经验和秘籍及不是秘笈的秘笈(3)
- 红警2的经验和秘籍及不是秘笈的秘笈(4)
- HTML 多媒体页面