rpm问题解答

第一篇RPM

1什么是rpm

rpmRedHatPackageManagement

由此可见这是RedHat的发明,也是RedHat

如此成功的重要原因之一

2为什么需要rpm

M$的环境下有大量的软件是通过安装程序

来进行管理的。linux下面也要解决相应的问题,

这里的问题涵盖了一个软件的各个生命周期

安装,配置,卸载。然而linux的系统变化繁多

配置也不像windows那样集中。面对种种问题,

RedHat针对自己的系统提出了一个较好的办法来

管理成千上百的软件。这就是RPM管理系统。在系

统中安装了rpm管理系统以后,只要是符合rpm

件标准的打包的程序都可以方便的安装,升级,

卸载。

3rpm打包的程序都有什么特点

a扩展名是rpm

b文件名本身反映了该软件的大量信息

比如mypackage-1.1-2TL.i386.rpm

mypackage是说明软件的名称这是将来在rpm管理

系统中登记的名字。

1.1是版本号,凭此来发现软件的新旧

有时候甚至还变为

1.1-19990112这样的形式即1999112日发布的

1.1版本

2TL这里的2是说明一种发行号意义不大,但可能

在生成该包时所用的环境不一样,有时变为

2glibc2.0x这样的形式即glibc2.0x的内核下生

成的该包,因此最好在相同的环境下使用

至于TLTurboLinux当然还有可能是rh:)

i386说的是此包是针对intel平台的相应的常见的

还有sparc针对sun

4怎么安装一个rpm

rpm-iyou-package.rpm即可

但安装时可能出现如下信息

...conflictwith...

这是说你安装的包里有一些文件可能会覆盖现有

的文件,缺省时这样的情况下是无法正确安装的

可以用rpm--force-i强制安装即可

有时会有

...isneededby...

...isnotinstalled...

这样的情况是此包需要的一些软件你没有安装

但有时这样的信息是不必的

比如gnome-1.0它需要xscreen但如果你就想使用其中

的一部分功能比如panel,gedit,gnorpm等等,并不需

xscreen因此可以用

rpm--nodeps-i来忽略此信息

因此总结为rpm-i--force--nodeps什么包都能

安装上,但不保证能发挥功能

还可以试试rpm-U(upgrade升级)

不过最好不要用(纯属个人意见)

5怎么卸载一个软件

非常简单rpm-eyour-package即可

用上面那个例子

mypackage-1.1-2TL.i386.rpm

安装以后应该用

rpm-emypackage即可不需要有原来的安装软件

有时候出现

...isneededby...

这说明这个软件被其他软件需要,不能随便卸载

但有时也可能需要卸载

比如TLC中安装管理程序xturbopkg只需要

perl-Tk,perl-gettext,turbodesk这几个包

可他的要求还有很多其他的包,把那些包卸载时就

会有...isneededbyxturbopkg

不管他用rpm-e--nodeps即可

很明显--nodepsnodependencity

6怎么了解一个包里都有哪些软件...

rpm-qq代表查询

-qllist所有安装的文件

-qiinfo列出这个软件的简要说明

-q只列出着包是否安装了并有版本等信息

使用-q必须安装了包以后,后面跟软件名

比如上面的mypackage

可以试一试rpm-qrpm看看你系统的rpm版本

7rpm可否在RH以外的系统上使用

实际上任何系统都需要包管理系统,而rpm系统

确实优秀,因此很多linux都使用rpm系统。但rpm系统

前面提到了他是为RH专门设计的,因此这些系统都拥有

RH相似的配置系统,这也限制了rpm的应用。

TL,Mandrake等系统都使用rpm

由于rpm有源程序因此可以在别的系统上编译运行,

所以有可能在别的系统上使用rpm

8除了rpm还有其他选择吗

debiandeb包,slakware也都有自己的包管理系统

9安装了一个程序为什么不能运行

情况太复杂了

1...so...notfound

安装相应的库程序,实际上在安装一个软件时会提示你

缺少某些库,但你得不到错误提示还有可能无法使用该程

序,检查一下/etc/ld.so.conf加入相应库所在的路径

比如将qt库安装在/usr/local/lib

/etc/ld.so.conf中加入/usr/local/lib(单独一行)

再运行ldconfig后试试qt库就能使用了

有时还不行试试做一些软连接

比如mtv-1.0.8需要SDL0.9higherTLC中只有SDL0.88

其实在/usr/lib下做一个连接

ln-slibSDLX11.so.0.88libSDLX11.so.0.9

在运行ldconfig后试试一切正常有时软件并不需要很新的

支持比如kde1.1可以在libstdc++2.7.2下运行解决的办法

同样也是做软连接

2erroropen...

可能是某些子目录或文件找不到试试建一个

比如apache_php3需要一个/var/logs子目录来访logs

建一个就可以了,找这样的错误要去看系统的log

/var/log子目录下

3coredumped

如果你使用TLC很有可能是wrap同软件矛盾

解决办法最简单了做一个shell脚本

比如xkoboTLC下不能运行

做个脚本

unsetLD_PRELOAD

xkobo

即可很多程序都能这样在TLC下运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值