📄 00000000.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: boyalone (不笑), 信区: Linux <BR>标 题: rpm问题解答 <BR>发信站: BBS 水木清华站 (Fri Apr 30 11:01:56 1999) <BR> <BR>最近比较有空,我决定贴一些文章 <BR> <BR> 帮助大家快速对linux上手 <BR> <BR> 我个人水平有限 <BR> <BR> 也没有把linux-howto汉化的时间 <BR> <BR> 发一些小文章希望对大家有帮助 <BR> <BR> 如果大家有什么需要,可以发信给我 <BR> <BR> 大家一起研究 <BR> <BR> <BR> 第一篇 RPM <BR> <BR> <BR> 1 什么是rpm <BR> <BR> rpm 即RedHat Package Management <BR> <BR> 由此可见这是RedHat的发明,也是RedHat <BR> <BR> 如此成功的重要原因之一 <BR> <BR> <BR> 2 为什么需要rpm <BR> <BR> 在M$的环境下有大量的软件是通过安装程序 <BR> <BR> 来进行管理的。linux下面也要解决相应的问题, <BR> <BR> 这里的问题涵盖了一个软件的各个生命周期 <BR> <BR> 安装,配置,卸载。然而linux的系统变化繁多 <BR> <BR> 配置也不像windows那样集中。面对种种问题, <BR> <BR> RedHat针对自己的系统提出了一个较好的办法来 <BR> <BR> 管理成千上百的软件。这就是RPM管理系统。在系 <BR> <BR> 统中安装了rpm管理系统以后,只要是符合rpm文 <BR> <BR> 件标准的打包的程序都可以方便的安装,升级, <BR> <BR> 卸载。 <BR> <BR> <BR> 3 rpm打包的程序都有什么特点 <BR> <BR> a 扩展名是rpm <BR> <BR> b 文件名本身反映了该软件的大量信息 <BR> <BR> 比如mypackage-1.1-2TL.i386.rpm <BR> <BR> mypackage是说明软件的名称这是将来在rpm管理 <BR> <BR> 系统中登记的名字。 <BR> <BR> 1.1是版本号,凭此来发现软件的新旧 <BR> <BR> 有时候甚至还变为 <BR> <BR> 1.1-19990112这样的形式即1999年1月12日发布的 <BR> <BR> 1.1版本 <BR> <BR> 2TL这里的2是说明一种发行号意义不大,但可能 <BR> <BR> 在生成该包时所用的环境不一样,有时变为 <BR> <BR> 2glibc2.0x这样的形式即glibc和2.0x的内核下生 <BR> <BR> 成的该包,因此最好在相同的环境下使用 <BR> <BR> 至于TL即TurboLinux当然还有可能是rh了 :) <BR> <BR> i386说的是此包是针对intel平台的相应的常见的 <BR> <BR> 还有sparc针对sun的 <BR> <BR> <BR> 4 怎么安装一个rpm包 <BR> <BR> rpm -i you-package.rpm即可 <BR> <BR> 但安装时可能出现如下信息 <BR> <BR> ... conflict with ... <BR> <BR> 这是说你安装的包里有一些文件可能会覆盖现有 <BR> <BR> 的文件,缺省时这样的情况下是无法正确安装的 <BR> <BR> 可以用 rpm --force -i 强制安装即可 <BR> <BR> 有时会有 <BR> <BR> ... is needed by ... <BR> <BR> ... is not installed ... <BR> <BR> 这样的情况是此包需要的一些软件你没有安装 <BR> <BR> 但有时这样的信息是不必的 <BR> <BR> 比如gnome-1.0它需要xscreen但如果你就想使用其中 <BR> <BR> 的一部分功能比如panel,gedit,gnorpm等等,并不需 <BR> <BR> 要xscreen因此可以用 <BR> <BR> rpm --nodeps -i 来忽略此信息 <BR> <BR> 因此总结为rpm -i --force --nodeps 什么包都能 <BR> <BR> 安装上,但不保证能发挥功能 <BR> <BR> 还可以试试rpm -U (upgrade 升级) <BR> <BR> 不过最好不要用(纯属个人意见) <BR> <BR> <BR> 5 怎么卸载一个软件 <BR> <BR> 非常简单rpm -e your-package即可 <BR> <BR> 用上面那个例子 <BR> <BR> mypackage-1.1-2TL.i386.rpm <BR> <BR> 安装以后应该用 <BR> <BR> rpm -e mypackage即可不需要有原来的安装软件 <BR> <BR> 有时候出现 <BR> <BR> ... is needed by ... <BR> <BR> 这说明这个软件被其他软件需要,不能随便卸载 <BR> <BR> 但有时也可能需要卸载 <BR> <BR> 比如TLC中安装管理程序xturbopkg只需要 <BR> <BR> perl-Tk,perl-gettext,turbodesk这几个包 <BR> <BR> 可他的要求还有很多其他的包,把那些包卸载时就 <BR> <BR> 会有 ... is needed by xturbopkg <BR> <BR> 不管他用rpm -e --nodeps即可 <BR> <BR> 很明显 --nodeps 即 no dependencity <BR> <BR> <BR> 6 怎么了解一个包里都有哪些软件... <BR> <BR> rpm -q q 代表查询 <BR> <BR> -ql list 所有安装的文件 <BR> <BR> -qi info 列出这个软件的简要说明 <BR> <BR> -q 只列出着包是否安装了并有版本等信息 <BR> <BR> 使用-q必须安装了包以后,后面跟软件名 <BR> <BR> 比如上面的mypackage <BR> <BR> 可以试一试rpm -q rpm 看看你系统的rpm版本 <BR> <BR> <BR> 7 rpm可否在RH以外的系统上使用 <BR> <BR> 实际上任何系统都需要包管理系统,而rpm系统 <BR> <BR> 确实优秀,因此很多linux都使用rpm系统。但rpm系统 <BR> <BR> 前面提到了他是为RH专门设计的,因此这些系统都拥有 <BR> <BR> 同RH相似的配置系统,这也限制了rpm的应用。 <BR> <BR> TL,Mandrake等系统都使用rpm <BR> <BR> 由于rpm有源程序因此可以在别的系统上编译运行, <BR> <BR> 所以有可能在别的系统上使用rpm <BR> <BR> <BR> 8 除了rpm还有其他选择吗 <BR> <BR> debian的deb包,slakware也都有自己的包管理系统 <BR> <BR> <BR> 9 安装了一个程序为什么不能运行 <BR> <BR> 情况太复杂了 <BR> <BR> 1 ...so... not found <BR> <BR> 安装相应的库程序,实际上在安装一个软件时会提示你 <BR> <BR> 缺少某些库,但你得不到错误提示还有可能无法使用该程 <BR> <BR> 序,检查一下/etc/ld.so.conf加入相应库所在的路径 <BR> <BR> 比如将qt库安装在/usr/local/lib下 <BR> <BR> 在/etc/ld.so.conf中加入/usr/local/lib(单独一行) <BR> <BR> 再运行ldconfig后试试qt库就能使用了 <BR> <BR> 有时还不行试试做一些软连接 <BR> <BR> 比如mtv-1.0.8需要SDL0.9 higher而TLC中只有SDL0.88 <BR> <BR> 其实在/usr/lib下做一个连接 <BR> <BR> ln -s libSDLX11.so.0.88 libSDLX11.so.0.9 <BR> <BR> 在运行ldconfig后试试一切正常有时软件并不需要很新的 <BR> <BR> 支持比如kde1.1可以在libstdc++2.7.2下运行解决的办法 <BR> <BR> 同样也是做软连接 <BR> <BR> <BR> 2 error open ... <BR> <BR> 可能是某些子目录或文件找不到试试建一个 <BR> <BR> 比如apache_php3需要一个/var/logs子目录来访logs <BR> <BR> 建一个就可以了,找这样的错误要去看系统的log <BR> <BR> 在/var/log子目录下 <BR> <BR> <BR> 3 core dumped <BR> <BR> 如果你使用TLC很有可能是wrap同软件矛盾 <BR> <BR> 解决办法最简单了做一个shell脚本 <BR> <BR> 比如xkobo在TLC下不能运行 <BR> <BR> 做个脚本 <BR> <BR> unset LD_PRELOAD <BR> <BR> xkobo <BR> <BR> 即可很多程序都能这样在TLC下运行 <BR> <BR> <BR> 就这么多大家补充吧 <BR>-- <BR>\ / <BR> \ o --> <-- o / <BR> \++++++++++++++++++++++++++++++++++++++++/ <BR> 两小球何时相撞? <BR> 解: <BR> F=Ma <BR> <BR>※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: 166.111.7.111] <BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -