--
进程管理:
pstree - display a tree of processes
pstree--打印进程树,可以清楚地看出进程之间的关系
init├─gnome-terminal─┬─bash───pstree--这里可以看到由init进程产生gnome-terminal,再产生bash,再产生pstree命令,进程之间有父进程和子进程的关系
│ ├─2*[bash]
│ ├─gnome-pty-helpe
│ └─{gnome-terminal}
[root@li ~]# cat /proc/5509/status
Name: vmware
State: S (sleeping)
SleepAVG: 98%
Tgid: 5509
Pid: 5509
PPid: 2908
[root@li ~]# cat /proc/2908/status
Name: bash
State: S (sleeping)
SleepAVG: 98%
Tgid: 2908
Pid: 2908
PPid: 2903
[root@li ~]# cat /proc/2903/status
Name: gnome-terminal
State: S (sleeping)
SleepAVG: 98%
Tgid: 2903
Pid: 2903
PPid: 1
[root@li ~]# cat /proc/1/status
Name: init
State: S (sleeping)
SleepAVG: 98%
Tgid: 1
Pid: 1
PPid: 0
常用的
ps -ef
ps aux
#firefox &
[root@li ~]# ps -ef |grep firefox
root 3944 3770 0 09:54 pts/1 00:00:00 /bin/sh /usr/lib/firefox-3.0.12/run-mozilla.sh /usr/lib/firefox-3.0.12/firefox
root 3961 3944 4 09:54 pts/1 00:00:01 /usr/lib/firefox-3.0.12/firefox
root 3984 3770 0 09:54 pts/1 00:00:00 grep firefox
--上面的第三句进程是本身自己grep的进程,如果查找时不想看的话,可以使用grep -v去掉,如下:
# ps -ef |grep firefox |grep -v grep
--如果上面的进程卡死,需要使用kill -9 进程号来杀掉进程
# kill -9 3944 3961
-9是参数信号量,以后学到的比较大型的软件的文档都会有关于软件本身的各种信号量的说明
比如:
kill -HUP (pid)--一般指刷新进程,reload
kill -USR1 (pid)--类似HUP
kill -TERM (pid)--强制杀掉进程
# kill -9 3944 3961
-9是参数信号量,以后学到的比较大型的软件的文档都会有关于软件本身的各种信号量的说明
比如:
kill -HUP (pid)--一般指刷新进程,reload
kill -USR1 (pid)--类似HUP
kill -TERM (pid)--强制杀掉进程
实验:
通过对httpd软件的进程给不同的信号来理解信号的作用
# yum install httpd* -y
# /etc/init.d/httpd start
# ps -ef |grep httpd |grep -v grep--找到它的父PID
# kill -TERM 父PID --发现httpd服务被强制关闭
再次启动
# kill -HUP 父PID --发现所有的子PID都会变化,也就是刷新(相当于就是/etc/init.d/httpd reload)
--可以使用下面的两条命令都可以查出httpd有关的进程
[root@li ~]# ps -ef |grep httpd |grep -v grep
[root@li ~]# lsof -i:80
下面几种方式批量杀掉httpd有关的进程
# kill -9 4205 4206 .......
# ps -ef |grep httpd |grep -v grep|awk '{print $2}'|xargs kill -9
# killall httpd
# pkill httpd
# kill -TERM 父PID --对比kill -9 父PID
# skill httpd
--区别:以httpd服务为例,kill -9 父PID后,子进程还在,web仍然可以被访问,并且它们的父进程变为1了。你再使用service httpd start|stop 都会报错
--kill -TERM 父PID,所有的子进程都没了,web不能被访问了
================================================================
linux下的软件包管理
你可以在linux安装任何支持linux平台的软件,
但是现在的软件的发布方式有各种格式,不同的软件有不同的安装方式,
甚至同一个软件在不同的linux系统平台上,在32位和64位上安装的方式都不相同
可以这么说:你在linux下安装过无数的软件,也不代表你会安装所有的软件
开源软件主要的综合发布网站: www.sourceforge.net
下面介绍几种主要的软件包格式的相关管理
.rpm
.src.rpm
源码包
.rpm 红帽包管理 red hat packages management
debian ubuntu 这两个系统用的不是rpm包
--也就是说.rpm的软件包是红帽发明的一种软件包的格式,使用广泛,但并不是很有的都通用
--但对于软件的开发者来说,他们是用C语言等来开发软件的,并不是.rpm的包,需要经过特殊的打包方式来做成.rpm的包(这个打包方式非常复杂)
--如果你要在linux上安装一个软件,但rhel光盘里没有自带这个包,可以尝试去www.rpmfind.net这个网站去找一下别人帮你打包的rpm包
--如果还是找不到这个软件的rpm格式的包,则只有两种方式,选择其它格式的或者自己打包成rpm格式
yum-3.2.22-20.el5.noarch.rpm
xsane-0.991-5.el5.i386.rpm
nginx-0.8.4.tar.gz--源码包
cacti-0.8.7b-1.fc8.src.rpm--rpm源码包
软件名-版本号-平台架构-包后缀
x86复杂指令集 ,一般是PC平台
非x86精简指令集 一般指大型主机,服务器类型
i386支持386平台,386都是支持后来的586,686的平台,但是反过来686不一定支持386,因为686rpm包它有对平台做优化,那386就不一定支持
noarch 支持任意平台
rpm -ivh yum-3.2.22-20.el5.noarch.rpm
-i安装
-v看它的安装过程
-hhash校验
[root@li Server]# rpm -ivh yum-3.2.22-20.el5.noarch.rpm
warning: yum-3.2.22-20.el5.noarch.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
Preparing... ########################################### [100%]
package yum-3.2.22-20.el5.noarch is already installed
--表示已经安装过了;上面有nokey的报警,就导入光盘的RPM-GPG-KEY文件
rpm --import RPM-GPG-KEY-redhat-release
--导入后,就没有上面的报警信息了
[root@li Server]# rpm -ivh zsh-html-4.2.6-3.el5.i386.rpm
Preparing... ########################################### [100%]
1:zsh-html ########################################### [100%]
--装成功
[root@li Server]# rpm -ivh mysql-5.0.77-3.el5.i386.rpm
error: Failed dependencies:
perl(DBI) is needed by mysql-5.0.77-3.el5.i386
--包依赖性
[root@li Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm
warning: wireshark-1.0.8-1.el5_3.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libsmi.so.2 is needed by wireshark-1.0.8-1.el5_3.1.i386
--库依赖性
[root@li Server]# rpm -ivh libsmi-devel-0.4.5-2.el5.i386.rpm --再装这个也有依赖性
warning: libsmi-devel-0.4.5-2.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186
error: Failed dependencies:
libsmi = 0.4.5-2.el5 is needed by libsmi-devel-0.4.5-2.el5.i386
libsmi.so.2 is needed by libsmi-devel-0.4.5-2.el5.i386
--所以正确的安装顺序为:
[root@li Server]# rpm -ivh libsmi-0.4.5-2.el5.i386.rpm
[root@li Server]# rpm -ivh libsmi-devel-0.4.5-2.el5.i386.rpm
[root@li Server]# rpm -ivh wireshark-1.0.8-1.el5_3.1.i386.rpm
--两个包互相依赖,就要一条命令把两个一起装上
--冲突
[root@li ~]# rpm -ivh /share/soft/VMware-workstation/VMwareTools-6.0.2-59824.i386.rpm
Preparing... ########################################### [100%]
file /usr/bin/vm-support from install of VMwareTools-7240-59824.i386 conflicts with file from package VMwareWorkstation-6.0.2-59824.i386
file /usr/lib/libvmci.so.0.0.0 from install of VMwareTools-7240-59824.i386 conflicts with file from package VMwareWorkstation-6.0.2-59824.i386
--上面就是安装虚拟机工具时,和你已经安装的虚拟机软件冲突了
实例安装rhel6.3下的fence-agents
# rpm -ivh /yum/Packages/fence-agents-3.1.5-17.el6.x86_64.rpm
error: Failed dependencies:
/usr/bin/ipmitool is needed by fence-agents-3.1.5-17.el6.x86_64
perl(Net::Telnet) is needed by fence-agents-3.1.5-17.el6.x86_64
perl-Net-Telnet is needed by fence-agents-3.1.5-17.el6.x86_64
pexpect is needed by fence-agents-3.1.5-17.el6.x86_64
# rpm -ivh /yum/Packages/ipmitool-1.8.11-13.el6.x86_64.rpm
# rpm -ivh /yum/Packages/perl-Net-Telnet-3.03-11.el6.noarch.rpm
# rpm -ivh /yum/Packages/pexpect-2.3-6.el6.noarch.rpm
# rpm -ivh /yum/Packages/fence-agents-3.1.5-17.el6.x86_64.rpm
关于一些特殊参数
--force --强制安装
--nodeps--脱离依赖性
--noscript--不要命令的脚本功能
--nodocs--不安装文档文件
rpm -qa--查找系统里已经安装的rpm软件包(不包含源码包等)
rpm -ql--查找一个包将要安装哪些文件,安装到哪里
rpm -qpl--当你接的包名不是rpm -qa查找出来的,需要接p参数;用于一个包在安装之前,就想查看它会安装哪些文件
rpm -qf--查找一个文件是属于哪个包
rpm -qi--查看一个已安装的包的信息
rpm -qpi
rpm -qc--查看配置文件
rpm -qd--查看文档文件
rpm -qi可以查到包的信息,还有这个包由哪一个src.rpm包所编译过来。
红帽的rpm包对应的这些src.rpm包都可以在下面的网址去下载
ftp://www.redhat.com
--包的删除
[root@li ~]# rpm -qa |grep wireshark
wireshark-1.0.8-1.el5_3.1 --必须要用这个名,不能用包的全名
[root@li ~]# rpm -e wireshark-1.0.8-1.el5_3.1
--删除包也会有依赖性
==============================
# rpm -qip zsh-html-4.2.6-3.el5.i386.rpm |grep Source
Group : System Environment/Shells Source RPM: zsh-4.2.6-3.el5.src.rpm
--红帽系统上任意提供的rpm包都是它对应的source rpm包;这种包都可以在红帽的ftp服务器下载
ftp://ftp.redhat.com
/share/soft/monitor/cacti/cacti-0.8.7b-1.fc8.src.rpm
这种包是需要重编译
rpm 源码包,根据你的硬件情况编译成适合你的系统的rpm安装包
--------------------------
[root@li SPECS]# pwd
/usr/src/redhat/SPECS--rhel5下的路径
在rhel6下的路径不一样了
# ls /root/rpmbuild/--rhel6下这个路径对应了rhel5下的/usr/src/redhat,但在rhel6里默认这个路径不存在
[root@li SPECS]# ls--目录下没东西
[root@li SPECS]# rpm -qa |grep cacti--没有装这个包
[root@li SPECS]# rpm -ivh /share/soft/monitor/cacti/cacti-0.8.7b-1.fc8.src.rpm --直接rpm -ivh 安装.src.rpm包
--rpm -ivh安装过后,在rhel6下就会产生这个目录了
# ls /root/rpmbuild/
SOURCES SPECS
[root@li SPECS]# ls--出现了这个文件
cacti.spec
[root@li SPECS]# rpm -qa |grep cacti--还是没有装
--也就是说,.src.rpm包不是直接使用rpm -ivh安装的,它这样安装出现的是一个.spec的宏文件
--这个.spec的宏文件就是定义了它的打包的方式
有时如果你想改变rpm包的功能,可以修改这个.spec的宏文件,
然后再由这个.spec的宏文件去build成拥有你修改功能的新的rpm包
例:修改过.spec后,由下面去编译成rpm包
# rpmbuild -ba /usr/src/redhat/SPECS/cacti.spec
--然后在信息的倒数二十行左右会看到编译成了一个rpm包,再去装它就可以了
Wrote: /usr/src/redhat/RPMS/noarch/cacti-0.8.7b-1.noarch.rpm
--在rhel6下倒数第8行左右会看到下面的
Wrote: /root/rpmbuild/RPMS/noarch/cacti-0.8.7b-1.el6.noarch.rpm
--------------------------
[root@li cacti]# rpmbuild --rebuild cacti-0.8.7b-1.fc8.src.rpm
Wrote: /usr/src/redhat/RPMS/noarch/cacti-0.8.7b-1.noarch.rpm --提示写入成了rpm包
[root@li noarch]# rpm -ivh cacti-0.8.7b-1.noarch.rpm
[root@li noarch]# rpmbuild --rebuild /share/soft/iscsi/iscsitarget-0.4.13-2fc5.src.rpm
Wrote: /usr/src/redhat/RPMS/i386/iscsitarget-0.4.13-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/dkms-iscsi_trgt-0.4.13-2.i386.rpm
Wrote: /usr/src/redhat/RPMS/i386/iscsitarget-debuginfo-0.4.13-2.i386.rpm
--这个包写成了三个rpm包
==================================
rpm 包
优点:安装方便
在特别大型的服务器环境下,使用rpm包比较方便
缺点:功能被定死,如果要修改功能,则要修改宏文件
有些平台不适用
打包方式特别复杂
源码包source code 需要用编译器去编译的包(如GCC)
优点:可以适应不同平台
可以定制功能 (使用编译参数去实现)
缺点:安装麻烦,要求技术水平较高,时间长
www.sourceforge.net 网站上大量的开源软件
常用的编译器或解析器:
gcc - GNU project C and C++ compiler
cmake - Cross-Platform Makefile Generator
在linux下默认是不支持ntfs格式的挂载,移动硬盘现在基本都是
ntfs格式,所以使用移动硬盘来拷资料就需要让linux支持ntfs格式,
需要两个第三方包来实现
支持ntfs安装(要安装两个包一个fuse包,一个ntfs-3g的包)
[root@li arp-scan-1.6]# tar xvf /share/soft/soft/ntfs/fuse-2.7.4.tar.gz -C /usr/src/
[root@li arp-scan-1.6]# tar xvf /share/soft/soft/ntfs/ntfs-3g-2009.4.4.tgz -C /usr/src/
安装一个源码包的过程:
1,解压到一个目录
2,cd到这个目录,并查看readme,install,FAQ等文件了解安装方法
3,make clean --清除一些编译信息,使之成为干净的源码
4,./configure --根据你指定的参数,对编译进行行为控制,产生符合要求的程序,相当是一个检查程序,检查通过会产生makefile文件
./configure --help 查找编译参数
./configure --help > /fusehelp.txt
5.make --根据产生的makefile进行源码编译
6.make install --把产生的文件安装到需要的地方
增加fuse这个模块
[root@li fuse-2.7.4]# lsmod |grep fuse
[root@li fuse-2.7.4]# modprobe fuse
[root@li fuse-2.7.4]# lsmod |grep fuse
fuse 49237 0
再安装ntfs-3g的包
[root@li fuse-2.7.4]# cd ../ntfs-3g-2009.4.4/ --cd到ntfs-3g包的目录里
[root@li ntfs-3g-2009.4.4]# ./configure; make; make install--三条命令一起写执行编译过程
[root@li ntfs-3g-2009.4.4]# mount--编译安装成功后会看到mount.ntfs-3g命令
mount mount.fuse mount.nfs4 mountpoint
mount.cifs mount.nfs mount.ntfs-3g
[root@li ntfs-3g-2009.4.4]# mount.ntfs-3g /dev/sdb2 /media/--使用方法挂载ntfs格式分区
问题:
1,假设我在linux下安装rpm版的qq2012版,再安装qq2013版可不可以,会出现什么问题,怎么解决?
2,假设我在linux下安装源码版的qq2012版,默认的安装路径/usr/local和我自定义的安装路径/usr/local/qq各有什么优缺点?
3,在同一个系统上,最多可以安装同一个软件不同版本多少次?如何实现
4,ldconfig能做什么?
5, 关于linux的锁屏,普通用户登录可以用ctrl+alt+L三键齐按来锁屏(需要安装screen-4.0.3-16.el6.x86_64软件包实现),root用户要锁屏,我们借助第三方软件
/share/soft/
xlockmore-5.29.1.tar.bz2
xlockmore-5.41-1.el6.x86_64.rpm
xlockmore-5.41.tar.bz2
安装这个软件后,使用xlock命令就可以root锁屏,输入root密码就可以解锁
6.安装mplayer --linux版的mplayer播放器
[root@li arp-scan-1.6]# ls /share/soft/mplayer/
essential-20071007.tar.bz2 mplayer-new.tar.gz readme.txt --看readme安装
font-arial-iso-8859-1.tar.bz2 OSX-Mod-1.1.tar.bz2.tgz
[root@li ~]# firefox /share/soft/mplayer/readme.txt &
--用firefox打开readme文件,并选择gb2312的字符集查看帮助
==============================================
yum - Yellowdog Updater Modified
为了解决依赖性的问题 debian 分发版产生了 apt来解决依赖性
red hat 分发版 yum (yellow dog updater) 由 python语言写的
第三方的软件 rhel 4 - rhel 5.1版或5.2版
CS模式
软件仓库 repository (server) -------> 客户端
vim /etc/yum.repos.d/rhel-debuginfo.repo
[Server]--软件仓库名 --大小写不敏感,随便命名,会在客户端使用时显示
name=Red Hat Enterprise Linux $releasever - $basearch - Debug --标识名
baseurl=ftp://10.1.1.1/Server--软件仓库地址
enabled=1--是否打开
gpgcheck=0--跳过gpg验证
file:///--三个/
ftp://
http://
--rhel6.3下默认的配置如下
[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
--如果你能上网,上面把enabled=0改为enabled=1就可以使用yum
本地yum源的搭建
[root@li soft]# mount /share/soft/iso/rhel-5.4-server-i386-dvd.iso /mnt/ -o loop
[root@li soft]# mkdir /share/yum
[root@li soft]# cp /mnt/* /share/yum/ -rf
# vim /etc/yum.repos.d/rhel-debuginfo.repo --yum的配置文件,不一定是要叫这个名字,这个目录下所有以.repo结尾的文件都是配置文件 (但建议不要写多个.repo结尾的文件,有可能会冲突的;不用的暂时改名为非.repo结尾的就可以了)
# mv /etc/yum.repos.d/rhel-debuginfo.repo /etc/yum.repos.d/rhel-debuginfo.repo.bak --把原文件改名.bak结尾
# vim /etc/yum.repos.d/local.repo--这是rhel5的本地yum配置示例
[server]
name=server
baseurl=file:///share/yum/Server --本地的为file:/// 三个/
enabled=1
gpgcheck=0
[cluster]
name=cluster
baseurl=file:///share/yum/Cluster
enabled=1
gpgcheck=0
[clusterstorage]
name=clusterstorage
baseurl=file:///share/yum/ClusterStorage
enabled=1
gpgcheck=0
[vt]
name=vt
baseurl=file:///share/yum/VT
enabled=1
gpgcheck=0
--下面的配法是rhel6的配法
[server]
name=rhel6.3
baseurl=file:///yum/
enabled=1
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=file:///yum/LoadBalancer
enabled=1
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=file:///yum/HighAvailability
enabled=1
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=file:///yum/ScalableFileSystem
enabled=1
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=file:///yum/ResilientStorage
enabled=1
gpgcheck=0
--我的机器上也配置了一个ftp共享的远程yum的软件仓库,你只要把上面的file:///yum/替换成ftp://172.16.2.35/ 就可以了
#yum clean all--清除缓存和之前yum的一些信息
--建议每次使用yum前都做一下此命令,类似于刷新
#yum list --能够把所有的包都列出来就表示成功
--查看现在已经安装了哪些rpm包(源码包不算)
[root@li ~]# rpm -qa |wc -l
1054
[root@li ~]# yum list |grep installed |wc -l
1054
yum list |grep installed --查找已经安装的
yum list |grep -v installed--查找没有安装的
[root@li src]# yum install mysql* -y--y参数表示自动确认安装
Installing:
mysql i386 5.0.77-3.el5 base 4.8 M
mysql-bench i386 5.0.77-3.el5 base 507 k
mysql-connector-odbc i386 3.51.26r1127-1.el5 base 159 k
mysql-devel i386 5.0.77-3.el5 base 2.4 M
mysql-server i386 5.0.77-3.el5 base 9.8 M
mysql-test i386 5.0.77-3.el5 base 3.7 M
Installing for dependencies:
libtool-ltdl i386 1.5.22-6.1 base 37 k
perl-DBD-MySQL i386 3.0007-2.el5 base 147 k
perl-DBI i386 1.52-2.el5 base 605 k
unixODBC i386 2.2.11-7.1 base 832 k
[root@li src]# yum erase mysql*
[root@li src]# yum remove mysql* --这两个一样
=======================================================
Removing:
mysql i386 5.0.77-3.el5 installed 7.9 M
mysql-bench i386 5.0.77-3.el5 installed 2.6 M
mysql-connector-odbc
i386 3.51.26r1127-1.el5 installed 419 k
mysql-devel i386 5.0.77-3.el5 installed 5.6 M
mysql-server i386 5.0.77-3.el5 installed 21 M
mysql-test i386 5.0.77-3.el5 installed 27 M
Removing for dependencies:
perl-DBD-MySQL
i386 3.0007-2.el5 installed 326 k
-------------------------------------------
yum grouplist--列出组,或者 配置好yum后,在rhel5下使用system-config-packages来调出图形安装,rhel6就没有这个命令了
yum groupinstall "Windows File Server"
yum groupremove --慎用,有可能因为依赖性的问题把很多系统重要的包给remove掉了
[root@li yum.repos.d]# yum groupinstall 'News Server,DNS Name Server'--同时安装多个组,组名可以直接用鼠标复制下来,如果用手写要注意大小写和空格
=====================================================
使用yum的一些例子和常遇到的一些错误:
1,例子:如果用的是英文操作系统,但是忘了装中文支持,或者是装系统时忘了装一些包,但想不起是什么包
# yum list |grep zh --或者这样查找和中文有关的包
2,system-config-packages 图形调出安装系统时自定义包的界面,然后再装 或者使用 yum grouplist列出组,再yum groupinstall来安装
3,
报下面的错误,表明两个yum冲突了,要关掉一下(system-config-packages此命令打开的图形也会占用yum资源)
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: system-config-p
Memory : 33 M RSS (123 MB VSZ)
Started: Mon Jul 4 15:40:17 2011 - 00:22 ago
State : Sleeping, pid: 8454
4,报下面这种错误,就绝对是访问的问题;要么是路径写错了,如果是远程的就会是网络不通或者网络冲突
file:///share/yum/cluster/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/share/yum/cluster/repodata/repomd.xml'
5。关于repodata的讨论
[root@li ~]# mount /share/soft/iso/CentOS5.3.iso /mnt/ -o loop --挂载centos5.3的iso镜像
[root@li ~]# vim /etc/yum.repos.d/centos5.3.repo --把所有的yum配置改名为非.repo结尾,再创建这个配置文件,写上下面一段
[centos]
name=centos
baseurl=file:///mnt/CentOS/
enabled=1
gpgcheck=0
--但使用yum list时,报下面的错误,找不到repodata目录
file:///mnt/CentOS/repodata/repomd.xml: [Errno 5] OSError: [Errno 2] No such file or directory: '/mnt/CentOS/repodata/repomd.xml'
--总结:说明软件仓库并不是把一堆包放在一个目录,然后在yum的配置文件里写上路径就可以了,它需要一个repodata目录来存放软件信息
--正确的写法为
[centos]
name=centos
baseurl=file:///mnt --就写这个路径,因为repodata目录在centos里与CentOS目录同级,并不是它的子目录
enabled=1
gpgcheck=0
6,
导入gpg key 使用系统支持非本系统的包,网上软件仓库的网址一般都会有gpg key文件
rpm --import RPM-GPG-KEY-redhat-release
把上面的centos的配置文件的gpgcheck=0删除,或者改为1
[centos]
name=centos
baseurl=file:///mnt
enabled=1
然后在安装包时,会报下面的错误
signture 签名错误,
warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID e8562897
Public key for hesinfo-3.1.0-1.1.i386.rpm is not installed
--使用yum有上面的签名错误(如在rhel5.4上安装centos5.3的包),解决方法为在yum配置文件里加上gpgcheck=0
或者把centos5.3镜像里的key文件导入到系统,导入后就可以成功安装了
# rpm --import RPM-GPG-KEY-CentOS-5
--补充,现在一些大网站都有这种开源软件的软件仓库(如网易,搜狐),只要能上网,把yum配置文件写对路径就可以了(为http协议)
7。yum 很特殊的一个小问题
--例如我现在的目录下有如下perl开头的包
[root@li amavisd_clamav_spam]# ls perl-*
perl-Archive-Zip-1.23-1.el5.rf.noarch.rpm
perl-BerkeleyDB-0.32-1.el5.rf.i386.rpm
perl-Convert-BinHex-1.119-2.2.el5.rf.noarch.rpm
perl-Convert-TNEF-0.17-3.2.el5.rf.noarch.rpm
perl-Convert-UUlib-1.051-1.2.el5.rf.i386.rpm
perl-File-Temp-0.19-1.el5.rf.noarch.rpm
perl-IO-stringy-2.110-1.2.el5.rf.noarch.rpm
perl-MailTools-2.02-1.el5.rf.noarch.rpm
perl-MIME-tools-5.425-1.el5.test.noarch.rpm
perl-Net-Server-0.97-1.el5.rf.noarch.rpm
perl-Unix-Syslog-1.0-1.el5.rf.i386.rpm
[root@li amavisd_clamav_spam]# yum install perl*
--在这个目录下去yum install perl* 会变成不读取软件仓库里的perl开头的包,而是读取当前目录下的perl开头的包
--解决方法:cd到别的任意目录,再执行yum install perl* 就可以了
=============================
有兴趣的可以课后下载wine,编译安装后,可以用它来在linux运行windows下的硬盘版游戏(需要为硬盘版,就是不要写注册表的那种,并且安装目录为英文)
--练习安装软件:去sourceforge.net去下载