Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11830
  • 博文数量: 1
  • 博客积分: 66
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-10 16:18
文章分类

全部博文(1)

文章存档

2016年(1)

我的朋友
最近访客

分类: 其他平台

2016-12-14 17:11:57

RHEL 6.6_x64下的本地yum建立

以前在RHEL 6.2_x64上建立过本地yum,并且运行成功:

(1)在设备上的磁盘空间较大区域建立一个目录,用于存放RHEL的RPM安装包;并记好路径;

(2)在/etc/yum.repo.d下创建一个文件,本地yum一般创建为local.repo,采用vi或者其他编辑器打开local.repo,写入如下内容:

[local_server]

name = This is a local repo

baseurl = file:///RPM安装包放置的路径

enable = 1       **//是否启用此yum源//**

gpgcheck = 1     **//检查GPG-KEY,0为不检查,1为检查//**

gpgkey =   **//我将gpg-key文件与RPM安装包放在一个文件夹中,即将光盘或ISO文件中的GPG相关文件拷贝出来放在RPM安装包的文件夹中//**

文件内容含义解释:

[]:

     中括号中的是repository id,id可以随意命名,不过要注意的是不能存在相同的id,因为id是用来标识不同容器的;

name:

     后接repository name,用来说明容器,随意命名;

baseurl:

     repository的地址,如果是网络地址,就用http://,如果本地地址,就用file://。我们这里用的就是本地地址。注意上面的之所以是三个“///”,

     是因为第三个“/”表示根目录。

enable:

     表示这个容器是否启用。启用就设置为1,不启用就设置为0。

gpgcheck:

      表示是否检查rpm文件的数字签名。检查就设置为1,不检查就设置为0。

gpgkey:

      就是数字签名的公钥文件所在位置。如果gpgcheck值为1,此处就需要指定gpgkey文件的位置,如果gpgcheck值为0 ,就不需要此项了。上面的gpgcheck设置为0,此处可以没有gpgkey。

(3)创建索引:在root用户的终端下输入:createrepo –v /路径    **//RHEL的RPM安装包所在路径//**

     完成以后就可以使用该yum源了。

在RHEL 6.6_X64下,我也按此思路创建yum源,不能使用,还报错,当时没在意,以为是有什么玄机,在网上查阅了相关高手的文档。发现基本的思路与我所使用的思路相似,其中一篇文章使用的一个思路较为新颖,提出了还需要修改yumRepo.py文件,操作如下:

vi  /usr/lib/python2.6/site-packages/yum/yumRepo.py

找到如下行

remote = url + '/' + relative

修改为

remote = "/media/rhel_local_resources" + '/' + relative

配置完成后,运行“createrepo –v /路径”、“yum update”后,报错:

[root@gzz01 Desktop]# yum update

Traceback (most recent call last):

  File "/usr/bin/yum", line 4, in

    import yum

  File "/usr/lib/python2.6/site-packages/yum/__init__.py", line 55, in

    import rpmsack

  File "/usr/lib/python2.6/site-packages/yum/rpmsack.py", line 38, in

    import yum.depsolve

  File "/usr/lib/python2.6/site-packages/yum/depsolve.py", line 30, in

    from transactioninfo import TransactionMember

  File "/usr/lib/python2.6/site-packages/yum/transactioninfo.py", line 32, in

    from sqlitesack import YumAvailablePackageSqlite

  File "/usr/lib/python2.6/site-packages/yum/sqlitesack.py", line 26, in

    import yumRepo

  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 804

    remote = url + '/' + relative

    ^

IndentationError: unexpected indent

 

通过网络查找,“http://blog.csdn.net/a756041482/article/details/48215609“上,作者分析的原因:

原因(可能):1、删除了RPM相关数据库 /var/lib/rpm/中的Package文件,但也使用了rpm –rebuilddb修复数据库资料。

尝试:

1、cd /var/lib/rpm/

rm  -i  __db.*

yum clean all

yum history new

修复失败;                                                          2、rpm -Uvh--force  yum-2.0.7-3.1.fc.fr.noarch.rpm –nodeps;修复失败;

3、结合以上两种方法:

cd  /var/lib/rpm/

rm  -i  __db.*

rpm –rebuilddb

rpm -ivh --force /media/CDROM/Packages/yum-3.2.29-22.el6.noarch.rpm

/media/CDROM/Packages/yum-metadata-parser-1.1.2-16.el6.i686.rpm –nodeps

yum clean all

修复成功;运行本地yum源安装相关的软件支持包就正常了。

 

    说明:所有资源都来自于网络,对于各位大牛的贡献表示感谢!!!

阅读(1385) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~