• 搭建自己的YUM源HTTP服务器


    createrepo是linux下的创建仓库的软件包。create是创建的意思,repo是repository的缩写,是仓库的意思。
    yum(Yellowdog Updater,Modified)主要的功能是方便添加、删除和更新rpm软件包。可以解决软件包依存问题,更便于管理大量的系统更新问题。
    1,通过rpm -ivh <package>命令手动安装。
    还有一种情况是最麻烦的,就是提示缺少某些函数库(例如XML::Parser),当你不知道这个函数库包含在哪个软件包里的时候,就束手无策了
    2,通过注册RHN(Red Hat Network)帐号,然后由yum连接到RHNSatellite服务器上去解决更新和软件包依存关系等问题。这种方法需要能连接到internet。
    如果我没有RHN帐号怎么办呢?注册一个,或使用本地yum仓库。本地yum仓库就是把系统安装光盘里的内容复制到本地磁盘中,通过配置yum,让其访问这个本地磁盘,解决软件包依存关系,但不能更新软件包。
    在制作yum仓库时需要一个软件包:createrepo-0.4.11-3.el5.noarch.rpm
    可以用rpm -qa|grep createrepo命令查看是否安装了这个软件包。

    ==============================================Yum服务端==================================================================

    [root@yum01 rhel6]# mount /dev/cdrom /mnt

    [root@yum01 rhel6]# cp -rv /mnt/* .

    [root@yum01 repo]# find /var/repo/rhel6/ -name *.rpm |wc -l
    3763

    [root@yum01 rhel6]# rpm -qa | grep createrepo
    [root@yum01 rhel6]# yum install createrepo

    [root@yum01 repo]# pwd
    /var/repo
    [root@yum01 repo]# ls
    rhel6
    [root@yum01 repo]# createrepo . [create local repo]
    Spawning worker 0 with 3763 pkgs
    Worker 0:
    Worker 0: iso-8859-1 encoding on Ville Skyttä <ville.skytta@iki.fi> - 2.8.2-2
    Worker 0:
    Workers Finished
    Gathering worker results

    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete

    [root@yum01 var]# pwd
    /var
    [root@yum01 var]# createrepo --update repo/ [update repo]

    Saving Primary metadata
    Saving file lists metadata
    Saving other metadata
    Generating sqlite DBs
    Sqlite DBs complete


    [root@yum01 repo]# ls -al repodata/
    total 16320
    drwxr-xr-x 2 root root 4096 May 26 08:08 .
    drwxr-xr-x 4 root root 4096 May 26 08:08 ..
    -rw-r--r-- 1 root root 3351485 May 26 08:08 02ba3bcea83b70ed3503f6422bde9ad670a46d7362f271bfdd52c62020eee875-primary.sqlite.bz2
    -rw-r--r-- 1 root root 1810736 May 26 08:08 276ef6038aaa04b71a03fbaef23361cb9d3a776cafd9a2727dc0a9bbc96798b9-primary.xml.gz
    -rw-r--r-- 1 root root 4077328 May 26 08:08 5bf793cff6ffa05500c6e3b30eda7a9ed83c718acb5f35b8619820fa0f0b81ba-filelists.sqlite.bz2
    -rw-r--r-- 1 root root 1971688 May 26 08:08 5f0a940829039e76d8f03ed8e6697dbd917739a3990991b4e95c5c0bdb844972-other.xml.gz
    -rw-r--r-- 1 root root 3683005 May 26 08:08 ae782c5a33530ffeb0606a617c36efba8ded1403edc00d7fec96e95e0c1d4e19-filelists.xml.gz
    -rw-r--r-- 1 root root 1788710 May 26 08:08 be63e7d58fd72ffea2ef85f81fce5825201decc877b0d5bca47a459552daa39f-other.sqlite.bz2
    -rw-r--r-- 1 root root 3018 May 26 08:08 repomd.xml


    [root@yum01 repo]# sudo rpm --import /var/repo/rhel5/RPM-GPG-KEY-redhat-beta /var/repo/rhel5/RPM-GPG-KEY-redhat-release [if any GPG error]

    [root@yum01 repo]# yum install httpd

    [root@yum01 repo]# vim /etc/httpd/conf.d/repo.conf
    Alias /repo/ "/var/repo/"

    [root@yum01 repo]# /etc/init.d/httpd reload
    Reloading httpd:


    [root@yum01 repo]# yum install lynx

    [root@yum01 repo]# lynx http://localhost/repo/repodata/repomd.xml [verify can access]

    ==============================================Yum客户端==================================================================

    [root@redhat01 yum.repos.d]# cat /etc/yum.conf
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    debuglevel=2
    logfile=/var/log/yum.log
    exactarch=1
    obsoletes=1
    gpgcheck=1
    plugins=1
    installonly_limit=3

    [main]
    cachedir:yum缓存的目录,yum在此存储下载的rpm包和数据库,一般是/var/cache/yum。
    debuglevel:除错级别,0-10,默认是2。
    logfile:yum的日志文件,默认是/var/log/yum.log。
    pkgpolicy:包的策略。一共有两个选项,newest和last,这个作用是如果你设置了多个repository,而同一软件在不同的repository中同时存在,yum应该安装哪一个,如果是newest,则yum会安装最新的那个版本。如果是last,则yum会将服务器id以字母表排序,并选择最后的那个服务器上的软件安装。一般都是选newest。
    distroverpkg:指定一个软件包,yum会根据这个包判断你的发行版本,默认是redhat-release,也可以是安装的任何针对自己发行版的rpm包。
    exactarch,有两个选项1和0,代表是否只升级和你安装软件包cpu体系一致的包,如果设为1,则如你安装了一个i386的rpm,则yum不会用1686的包来升级。
    retries,网络连接发生错误后的重试次数,如果设为0,则会无限重试。
    tolerent,也有1和0两个选项,表示yum是否容忍命令行发生与软件包有关的错误,比如你要安装1,2,3三个包,而其中3此前已经安装了,如果你设为1,则yum不会出现错误信息。默认是0。

    除了上述之外,还有一些可以添加的选项,如

    exclude=,排除某些软件在升级名单之外,可以用通配符,列表中各个项目要用空格隔开,这个对于安装了诸如美化包,中文补丁的朋友特别有用。
    gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认好像也是检查的。


    [root@redhat01 yum.repos.d]# cp rhel-source.repo yum01.repo
    [root@redhat01 yum.repos.d]# mv rhel-source.repo /root/
    [root@redhat01 yum.repos.d]# cat yum01.repo
    [yum01-source]
    name=Red Hat Enterprise Linux $releasever - $basearch - Source
    baseurl=http://10.122.1.101/repo/
    enabled=1
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    [....] 代表这个库的名字,必须是唯一的,不可以重复。
    name= 是这个库的说明,没有太大的实际意义,只是一个字段说明。
    baseurl= 说明采取什么方式传输,具体路径在哪里,可以使用的方式有,file://,ftp://,http://等
    enabled=1 说明启用这个更新库,0表示不启用。
    gpgcheck=1 表示使用gpg文件来检查软件包的签名
    gpgkey= 表示gpg文件所存放的位置,此处也可以有http方式的位置。


    [root@redhat01 yum.repos.d]# yum clean all
    Loaded plugins: rhnplugin, security
    Cleaning repos: rhel-x86_64-server-6
    Cleaning up Everything

    [root@redhat01 ~]# yum repolist -v
    Loading "rhnplugin" plugin
    Loading "security" plugin
    Config time: 0.059
    This system is not registered with RHN.
    RHN Satellite or RHN Classic support will be disabled.
    Yum Version: 3.2.29
    Setting up Package Sacks
    pkgsack time: 0.036
    Repo-id : yum01-source
    Repo-name : THS RHEL 6Server - x86_64 - Source
    Repo-revision: 1401094261
    Repo-updated : Mon May 26 08:53:21 2014
    Repo-pkgs : 3,763
    Repo-size : 3.3 G
    Repo-baseurl : http://10.122.1.101/repo/
    Repo-expire : 21,600 second(s) (last: Wed May 28 06:12:42 2014)

    repolist: 3,763


    [root@redhat01 ~]# yum repolist all
    Loaded plugins: rhnplugin, security
    This system is not registered with RHN.
    RHN Satellite or RHN Classic support will be disabled.
    repo id repo name status
    yum01-source THS RHEL 6Server - x86_64 - Source enabled: 3,763

  • 相关阅读:
    TopCoder SRM502 Div1 500 贪心 01背包
    TopCoder SRM502 Div1 1000 动态规划
    LOJ#6433. 「PKUSC2018」最大前缀和 状压dp
    Codeforces 830D Singer House 动态规划
    Codeforces 830C Bamboo Partition 其他
    UOJ#275. 【清华集训2016】组合数问题 数位dp
    Codeforces 806 D. Perishable Roads Dijkstra
    UOJ#53. 【UR #4】追击圣诞老人 树链剖分 k短路
    Java第二天——标识符命名规则、Java的知识、快捷键的使用、Scanner获取值的常用方法
    Scanner的例子
  • 原文地址:https://www.cnblogs.com/oskb/p/3753520.html
Copyright © 2020-2023  润新知