Linux系统配置软件源来安装和更新软件工具。软件源有两种:一是网络源,二是本地源。本质就是一个访问软件资源的地址。如下:
网络源:http://wiki.ubuntu.org.cn/Qref/Source 这个地址下面就有Ubuntu的网络源,进去看看你就能发现那些源不过是一些地址,通过浏览器访问这些地址可以发现里面包含了软件包。
本地源:file:///usr/repo-packages 不难看出目录/usr/repo-packages是放置CentOS软件包的位置,也就是将网络源中的软件包下载下来放到该目录下。
下面以CentOS 6.0为例配置本地yum源。
(a)无论哪种源,首先要获得源。
网络源:
163网易yum源:http://mirrors.163.com/.help/CentOS-Base-163.repo中科大yum源:http://centos.ustc.edu.cn/CentOS-Base.repo
sohu的yum源:http://mirrors.sohu.com/help/CentOS-Base-sohu.repo
本地源:http://mirror.symnds.com/distributions/CentOS-vault/6.0/isos/i386/CentOS-6.0-i386-bin-DVD.iso
(b)其次将源放到Linux系统的本地目录中
网络源,要求你的Linux系统可以上网下载相应的源:
# cd /home
# wget http://mirrors.163.com/.help/CentOS-Base-163.repo #下载到home目录
本地源,导入光盘中的软件包:(需将CentOS-6.0-i386-bin-DVD.iso刻录到光盘或者通过虚拟光驱)
# ll /dev | grep cdrom #查看光驱设备
lrwxrwxrwx. 1 root root 3 May 22 09:56 cdrom1 -> sr0 //光盘设备
crw-rw----. 1 root cdrom 21, 0 May 22 09:56 sg0
brw-rw----+ 1 root cdrom 11, 0 May 22 09:56 sr0
# mkdir /mnt/cdrom
# mount -t iso9660 /dev/cdrom1 /mnt/cdrom #挂载光盘 或 mount -t iso9660 /dev/sr0 /mnt/cdrom
# cd /mnt/cdrom
# ls
CentOS_BuildTag repodata
EULA RPM-GPG-KEY-CentOS-6
GPL RPM-GPG-KEY-CentOS-Debug-6
images RPM-GPG-KEY-CentOS-Security-6
isolinux RPM-GPG-KEY-CentOS-Testing-6
Packages TRANS.TBL
# cd Packages
# mkdir /usr/repo-packages
# cp * /usr/repo-packages
# cp RPM-GPG-KEY-CentOS-6 /usr/repo-packages
# umount /dev/cdrom # 或者 umount /mnt/cdrom 卸载光盘
本地源,导入U盘中的软件包:(需将Packages放到U盘中)
# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes //sda为电脑第一块硬盘,如果你的电脑只有一块硬盘,那么其他非sda就是U盘
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00003e14
Device Boot Start End Blocks Id System
/dev/sda1 * 1 7 51200 83 Linux //sda1代表第一块硬盘的第一个主分区
Partition 1 does not end on cylinder boundary.
/dev/sda2 7 517 4096000 83 Linux //sda2代表第一块硬盘的第二个主分区
Partition 2 does not end on cylinder boundary.
/dev/sda3 517 774 2064384 82 Linux swap / Solaris //sda3代表第一块硬盘的第三个主分区
Partition 3 does not end on cylinder boundary.
/dev/sda4 774 2611 14758912 5 Extended //sda4代表第一块一盘的第一个扩展分区
/dev/sda5 774 2611 14757888 83 Linux //sda5代表第一块硬盘的第二个主扩展分区
Disk /dev/sdc: 8010 MB, 8010194944 bytes //sdc为U盘
255 heads, 63 sectors/track, 973 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xcad4ebea
Device Boot Start End Blocks Id System
/dev/sdc4 * 1 974 7822424+ b W95 FAT32 //sdc4代表U盘的第一个扩展分区
Partition 4 has different physical/logical endings:
phys=(972, 254, 63) logical=(973, 216, 59)
# mkdir /mnt/usb
# mount -vfat /dev/sdc4 /mnt/usb #挂载U盘
# cd /mnt/usb
# ls
# cp -r Packages/* /usr/repo-packages
# umount /mnt/usb # 或 umount /dev/sdc4 来卸载U盘
关于挂载的几点说明:
Linux将每一个物理设备都映射成了一个文件,这些文件都放在了/dev下面。
光驱映射成的文件就是一个文件名中包含“cdrom”的文件。
U盘映射成的文件是以非sda的sd*开头的文件。
自动挂载命令:mount -a (这需要配置文件/etc/fstab,来定义需要自动挂载的文件系统)
(c)再次,修改Linux系统软件源的配置文件。(修改之前先对要被修改的文件进行备份。如果不备份一旦破坏了该文件,恢复将很麻烦)
# mkdir /etc/yum.repos.d/bak
# cp /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
这种网络源很明显就是将目录/etc/yum.repos.d/下的*.repo文件替换。
# rm /etc/yum.repos.d/*.repo
># cp /home/*.repo /etc/yum.d/
本地源:
# vi /etc/yum.repos.d/CentOS-Local.repo #配置本地源,添加以下内容
1 [GuangPan]
2 name=CentOS-$releasever - Media #自定义名称
3 baseurl=file:///mnt/cdrom/ #直接使用挂载点路径 或 baseurl=file:///usr/repo-packages/ #使用本地目录的路径
4 gpgcheck=0 #检查GPG-KEY,0为不检查,1为检查
5 enabled=1 #启用yum源,0为不启用,1为启用
6 gpgkey=file:///usr/repo-packages/RPM-GPG-KEY-CentOS-5 #注意这里的5对应着5.x版本,如果你是6.x版本,要改成6。或者删除这行,之后再来导入。
(d)然后,安装软件源的信息生成工具,用来生成软件源中所有工具以及工具之间的依赖。
在没有配置好软件源之前,yum命令是不能用来自动安装工具的。
所以我们要在软件包的目录下通过rpm -ivh来安装软件包,这时我们需要注意各个软件包之间的依赖关系,这种依赖关系决定了我们用rpm -ivh命令安装具有依赖关系 的工具的顺序。
关于软件源信息生成工具createrepo的有3个包,可以根据提示逐个安装。也可以按下列顺序安装
第一个先安装:
# rpm -ivh libxml2-python-2.7.6-4.el6.x86_64.rpm
第二个安装:
# rpm -ivh deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
第三个安装:
# rpm -ivh python-deltarpm-3.5-0.5.20090913git.el6.x86_64.rpm
最后一个安装:
# rpm -ivh createrepo-0.9.8-4.el6.noarch.rpm
(注意:可能版本不一样,去掉版本号之后的部分再通过Tab键在当前路径下找到相应的工具包并自动补全工具包名)
(e)最后,清理原来的软件源配置信息(要先结束yum进程:rm -rf /var/run/yum.pid 否则会出现警告信息),生成新的软件源信息文件,并导入软件源KEY文件。
# yum clean all
# createrepo /usr/repo-packages
# rpm --import /usr/repo-packagesRPM-GPM-KEYY-CentOS-5 #注意这里的5对应着5.x版本,如果你是6.x版本,要改成6。
# yum update #更新源
至此,本地源的搭建已经全部完成,下面我们可以使用本地源来进行软件的安装了。
参考资料:
1.百度文库
2.
....
其他:
安装:yum -y install toolname1 toolname2 ...
卸载:yum -y remove toolname1 toolname2 ...
查询安装版本全名:
# rpm -qa firefox*
# firefox-3.6.9-2.el6.centos.i686
查询软件安装所在目录:
# rpm -ql firefox-3.6.9-2.el6.centos.i686 | grep firefox$ # 符号$表示以firefox结束