zl程序教程

您现在的位置是:首页 >  其他

当前栏目

fedora14 - 22安装yum源的最终所有唯一文档

文档安装 所有 yum 22 唯一 最终
2023-09-14 09:08:51 时间

yum的配置包括3个地方

  1. /etc/yum中主要是yum的插件: /etc/yum/pluginconf.d 目录下配置yum的插件的启用或禁用等...
  2. /etc/yum.conf这个是yum的主要配置文件
  3. /etc/yum.repos.d

要注意查看 像163 sohu 中科大ustc等提供的源 的 可用的版本,
比如: 163:

它的yum源的地址是: httpppp://mirrors.163.com/federo/releases/\(releasever/everything/\)basearch/os || updates || dubug等等 [1]

// \(releasever: 是指发行版的版本, 如fedoer14 的这个变量(这个变量, yum 的相关命令, 如makecache会去读取*.repo文件, 替换\)releasever变量).

// $basearch 是指基础架构名称, 通常是i386
后面会根据节点的名称而对应的是: os(指其中的系统包), updates(指系统更新包), debug等等.

假设 : 你的版本是 : fedora :fc14,
但是 实际上, 现实的情况是: 163 源的 服务器上可用的 yum的版本 只有 >=21 才可用, 也就是 ,
你访问到上面的那个网址下, 查看 20以下的版本下 .../$releasever /下只有readme.

所以, 如果你是21版本以下的, 如果直接使用上面的 [1] 地址, 就会出现 repodata/repomd.xml文件找不到!

----------------------------- ==
可以打开 14下的readme文件,查看:
ATTENTION

The contents of this directory have been moved to our archives available at:

httppp://archives.fedoraproject.org/pub/archive/fedora/ [2]

If you are having troubles finding something there please stop by #fedora-admin on irc.freenode.net

原来, 就版本的yum支持已经移动到 上面的地址[2]了.

所以 在yum的 fedora-163.repo 文件的 baseurl地址 换成 [2] 就可以了.

===================== ==--
注意, 写 [base]地址的时候, 要写到packages和repodata所在的目录, 即要写到 httppp:////archives.fedoraproject.org/pub/archive/fedora/linux/releases/14/Everything/i386/os

其实在 i386的目录下, 就有 就包含了:
os : 是包含操作系统内的东西, 如包, yum源repodata/repomd.xml等等
ios: 主要是提供 dvd的ios镜像文件下载.
....

-------------------------- ==
相关的网页的截屏如下:

------------------------------- ==
var 目录是一个很重要的目录, 里面包含很多经常变化的内容:
如:
日志文件: /var/log目录/ yum.log
缓存文件: /var/cache目录/yum 目录/... /i386/14/...

经常需要安装卸载的库文件: /var/lib/rpm/....
其中, rpm目录下的
Group, Installid, Packages等都是 ...数据库 ....文件....

---------------------------- yum安装 某个包的过程?

  1. 先看有没有cache, 如果没有/var/cache/yum/[yum节名], 如果没有, 就会从服务器中先下载cache
  2. 然后查询 repo中的packages 包, 看这个包中有没有 "你要安装的那个包". 如果有, 就会读取该包的dependencies , 然后安装该包的
    依赖包和这个包本身.

---------------------------- yum update 某个包的过程?

  1. 先看有没有cache, 如果没有/var/cache/yum/[yum节名], 如果没有, 就会从服务器中先下载cache
  2. 检查/var/lib/rpm包中的 "你要安装的那个包"的版本号和 服务器仓库中的这个包对应的版本号, 看哪个版本号更新
    然后就下载那个更新的包, 并安装.

---------------------- ==
yum makecache的时候, 总是提示: repomd.xml文件找不到? 而实际在那个http站点下确实又能看到repomd.xml文件?

[我的解决方法是: ]可能是/etc/yum.repos.d 中有其他 仓库源.

删除/etc/yum.repos.d/中其他不用的 repo文件, 就可以了 !!

也许是 /var/cache/yum/...中 其他源 缓存的存在!! ??

------------------------------- ==
yum 源中的 base 等方括号中 的内容表示什么意思?

repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用!

[fedora] #方括号里面的是软件源的名称,将被yum取得并识别

!!!! [fedora-163] 等方括号中的内容就是仓库的id, 就表示一个仓库.
通常, 一个repo文件, 可以包括多个仓库!! 每个仓库是通过 其中的 仓库id来区分的!

name=Fedora $releasever – $basearch #这里也定义了软件仓库的名称,通常是为了方便阅读配置文件,一般没什么作用,$releasever变量定义了发行版本,通常是8,9,10等数字,$basearch变量定义了系统的架构,可以是i386、x86_64、ppc等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择适合当前系统的软件包,以下同……

failovermethod=priority #failovermethod 有两个值可以选择,priority是默认值,表示从列出的baseurl中顺序选择镜像服务器地址,roundrobin表示在列出的服务器中随机选择 (failover: 故障复原, 表示如果前面的仓库源失效, 就依次使用下面的/ 后面的仓库源id)

exclude=compiz* *compiz* fusion-icon* #exclude这个选项是后来我自己加上去的,用来禁止这个软件仓库中的某些软件包的安装和更新,可以使用通配符,并以空格分隔,可以视情况需要自行添加

#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/
#上面的一行baseurl第一个字符是’#’表示该行已经被注释,将不会被读取,这一行的意思是指定一个baseurl(源的镜像服务器地址)
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
#上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将$releasever和$basearch替换成自己对应的版本和架构,例如10和i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表。
选择自己访问速度较快的镜像服务器地址复制并粘贴到repo文件中,我们就能获得较快的更新速度了,格式如下baseurl所示:


baseurl=
ftp://ftp.sfc.wide.ad.jp/pub/Linux/Fedora/releases/10/Everything/i386/os
http://ftp.chg.ru/pub/Linux/fedora/linux/releases/10/Everything/i386/os
http://ftp.yz.yamagata-u.ac.jp/pub/linux/fedora/linux/releases/10/Everything/i386/os
http://mirror.nus.edu.sg/fedora/releases/10/Everything/i386/os
http://mirror.yandex.ru/fedora/linux/releases/10/Everything/i386/os
http://ftp.twaren.net/Linux/Fedora/linux/releases/10/Everything/i386/os
http://ftp.itu.edu.tr/Mirror/Fedora/linux/releases/10/Everything/i386/os

enabled=1 #这个选项表示这个repo中定义的源是启用的,0为禁用
gpgcheck=1 #这个选项表示这个repo中下载的rpm将进行gpg的校验,已确定rpm包的来源是有效和安全的
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$basearch #定义用于校验的gpg密钥

以下的软件仓库基本上用不到,选项含义同上

[fedora-debuginfo]...........

通过这个实例的说明,相信大家都会觉得,其实fedora的repo文件真是很简单,有了一个初步的认识了之后,我们就可以修改我们自己的repo文件以达到加速的目的了,一些与repo相关的yum故障,我们也可以排查了!

--------------------------------- ==
如果设置/etc/yum.conf中 keepalive=1, 就能够使 /var/cache/yum/ repo-id/packages/中 保存你下载 安装过的包.

..../packages中 只保存你下载过的包, 而不是把仓库中的包都下载下来!

------------------- ====
/var/cache/yum/repo-id目录下的 *filelists.sqlite, *primary.sqlite等等, 都是sqlite数据库的脚本文件
里面实际上就是一些sql语句,
记录了关于数据仓库的包信息等等....

-------------------------- ==
yum中的list:

有些包是提供的 应用程序, 有的包是提供的 *.so库
yum 后面的list命令都是把 ???list, 把list放在相关命令字的后面, 如

yum repolist package-name: 会(下载/或读取...primary.sqlite文件) 将 当前可用的软件仓库的基本情况,
都列出来, 包括 repo-id , repo-name status(其中status列出了仓库中的包的个数).

yum deplist pack-name: 会把packname所有依赖的包 及 provider提供者 都列出来

yum list: 会将repo仓库中的所有的软件包都列出来!

-------------------------------- ===

国内的163. sohu等的fedora都只是部分支持, 低版本的fedora都转移到

国外的fedora的官方下载仓库地址. 所以都是 低速 网路.

安装yum-fastestmirror 插件?
安装好后, 系统会自动的去选择 网速最快的源 .
配置文件是:

centos5:
yum -y install yum-fastestmirror
centos4:
yum -y install yum-plugin-fastestmirror
 
安装之后,生成配置文件/etc/yum/pluginconf.d/fastestmirror.conf。
配置文件中的hostfilepath字段,用于定义yum源的配置文件(通常是/var/cache/yum/timedhosts.txt),
然后我们就可以将所知道的yum源统统写入这个txt文件,如:
 .....
ftp.nsysu.edu.tw
mirror01.idc.hinet.net
mirrors.163.com
mirrors.sohu.com

yum安装是基于c/s架构的,
写repo源的baseurl的时候, 关键是 要写到: repodata的上一级目录!!
如果 写了 gpgcheck的=1时, 要使用 rpm --import /etc/..... 导入gpgfile文件, 路径就是后面的那个本地文件!

当yum clean all后, 可以不用 yum makecache, 可以直接yum list就可以了, 因为这条命令会去创建yum的cache的!

----------------------- ==
linux中设备名的缩写含义:
sr代表 scsi + rom 表示光驱: 是软连接/dev/cdrom的 链接目标.
sd代表 scsi + disk
sg 代表 scsi + generic
st代表 scsi + tape

挂载光驱/U盘等块设备的时候,可以直接挂到/mnt目录下, 没有必要再在/mnt下去创建一个新的目录.

---------------------------------==
ens33是什么?
是使用linux新系统内核后, 将原来的eth0改名为的;
在fc22 即fedora22 中 内核为4.04后的系统中:

i386和i686?
i:是指intel,也可以指兼容cpu 后面的是cpu的等级, 区别主要是指令集的不同
i386, 80586 , 80686都是指cpu的第三代 第5代 第6代
区别: pentium的第一代和amd的k5 k6属于i586
pentium的第二代及以上 和amd的k7属于i686

从第五代开始就叫pentium了, 是因为希腊文中的五就是 penta.

linux下配置ip地址的放法很简单: ifconfig eth0 1.1.1.1/24
查看ip地址的方法: ifconfig -a.

可以给一个网卡配置多个ip地址, 从而将多个网站 绑定到 bound 同一台机器上的 同一张网卡上.
从而实现单机服务器带多个站点的能力:

给网卡配置多个ip地址的方法:
------- 直接 在网卡的后面 加上:0, :1, :2等等就可以了 -------------
如:
ifconfig ens33:0 1.1.1.2/24
如果要重启后也能使"子网卡 子地址"生效的话, 就需要将 sysconfig/network-scripts/ifcfg-ens33 复制成
sysconfig/network-scripts/ifcfg-ens33:0
这样系统在启动的时候, 就会去读取这个网卡, 并加以配置!
配置的时候, 注意 关于ens33和ens33:0的硬件mac地址uuid等信息都不要修改,

设置ifcfg-网卡的时候, 最重要的设置有三个方面:
IPADDR=
NETMASK=
GATEWAY=...
ONBOOT=yes....

------------------------------ ==
如果要使用本地 repos仓库,
· 需要导入本地的gpgfile文件
· 如果本地没有repos, 则自己需要创建repodata:

首先安装createrepo包: rpm -ivh createrepo
然后, 制作数据文件:

cd /media/repo

createrepo -g /media/iso/repodata/repomd.xml ./

这样, createrepo执行完以后, /media/repo目录下就产生了一个repodata目录, 里面放置的就是repodata 数据文件

???? 最好要把原来的yum.repos.d/下的所有文件全部都删除! 不然可能会在某些文件中 enabled的仓库会产生问题, 从而把自己配置好的仓库
也给“连累”了!

------------------------------------- ==
如果提示找不到 repodata/repomd.xml, 那么你确实是可以看到, 在那个baseurl下是没有这个repomd.xml文件的

gpgcheck的作用是, 验证下载下来的yum rpm包是否完整/原始,没有被人为的改动过, 因为对文件进行某个算法,后
如果改动了, 那么gpg??就跟指定的gpgfile不同了.

如果使用本地仓库, 你可以禁用其他ftp,http的仓库源, "强迫"使用本地仓库, 这样速度就更快

指定baseurl的目录, 是 到 repodata的上一级目录

有时候, 你写的某个网络仓库源, 原来可以使用, 现在不能使用, 那么, "很可能就是 那个仓库, 现在不可用了, 现在已经被移除了", 那么你可以到你所指定的那个站点, 去看一看, 到底还有没有那个仓库,....

centos默认的仓库文件是: CentOS-Base.repo

在使用yum进行查询时, 为了只是从本地进行查询, 而不需要更新cache时,可以使用 -C参数 --cacheonly

因为: 当第一次使用yum 或 yum仓库有更新时, 会自动下载cache到本地, 这可能需要较长时间, 因此, 使用-C参数就可以只在本地进行查询, 不用去更新仓库:

-------------------------------- ==
如果是某个软件, 后面有一系列的类似软件, 则通常是以该名称为"prefix", 如:
yum-.noarch.rpm
php-
.noarch.rpm


repomd.xml是对仓库的信息的描述, 所有yum操作都要以这个文件的信息来进行,
他是yum的索引文件, 包含了rpm包的依赖关系等.

一般光盘中都会自带repodata目录, 如果没有这个目录, 就要手动生成:

  1. 首先要用 rpm -ihv createrepo 安装包工具
  2. 执行createrepo .... 命令生成repodata目录
  3. 清除原来的yum数据缓存: yum clean all
  4. 验证: yum list | wc -l