yum使用本地源

cache: [k2e喜]: 注意它的发音: 不是: keik

the attribute could not be removed from the cache. 不能从缓存删除属性.

YUM对服务器而言最重要的是稳定+安全, 不一定要最新的软件...

yum创建本地缓存(repodata的缓存), 这样就不用每次安装包时要从远程服务器上去查询了:  yum makecache.

yum list可能会产生本地缓存...

mount (或: df -h)查看当前挂载情况,

yum源有三种: 网络地址源; 光盘-自动挂载; iso文件-手动挂载: moun/t -o loop mnt/iso/xxx.iso  /mnt/cdrom

:即: 把centos的isos镜像2碟, 从 archive.kernel.org/centos-vault/上下载下来,

:  然后用mount命令, 挂载成光盘/mnt/cdrom, 然后就可以用在 CentOS-Media.repo中

修改yum本地光盘源:

  1. 修改原来的repo文件: 改名_bak, 或者放在/..._bak文件夹中, 目的是让这些文件失效! 也可以更改其中的开关: enable=0/1

  2. 创建自己的repo文件:  vi myself.repo:

    [c6-media]      : 本地地址池,这个将显示在yum list文件的后面

    name=RedHat

    baseurl=file:///mnt/cd1/   (直接就是镜像的根路径, 不要用子目录).

         file:///mnt/cd2/

  :: 目录后面的斜杠 / 可以不要(实际实验过的)

  :: 使用两个file:::///本地镜像地址, yum会依次在这两个镜像中去操作,如list(会把两张碟的包都列出来, search等

如:uuid-c++这个rpm包就在cd2第二张碟中, 但是yum同样会搜索得出来.

:: yum search 是不支持通配符*, ?的 , 搜索时你不需要考虑字串在名字中的顺序, 只要是"包含"字串的包都会被列举出来!

 ??? 到底file::///哪个路径, 取决与repodata所在的位置,  反正一点:  file:///后面要写repodata这个目录的上一级目录就好了!如果报错:找不到gpgkey的话, 就用rpm导入gpgkey: rpm --import /etc/pki/rpm-gpg/*

    # ....    (这个地方, #注释不能随便乱写乱加. 很多时候, linux的配置文件有严格的格式规定)

    #....       ( 不能随便的在前面或后面加#, 甚至加空格都会报错...)

    enable=1

    gpgcheck=0

    gpgkey=file:///mnt/cdrom/..... (cdrom目录下可以查看)

  3. 测试:  

    yum clean all

    yum install xxxx....

mount的格式:

  mount  -t 文件系统类型   -o options  设备device   /挂载路径 dir

  -o :options: 是用来描述文件或设备挂接的方式:

    包括:ro, rw, -o loop : 将文件iso挂载成一个硬盘分区,  -o iocharset=字符集

   如: 将硬盘上的iso镜像文件挂接成一个光盘使用:

    mount  [ -t iso9660] -o loop /mnt/iso/xxx.iso   /mnt/cdrom

----------------------------------------------------------------

所有的/etc/pki/rpm-gpg/RPM-GPG-KEY-CENTOS-6的文件内容都是一样的( 不管它是从网上的, 还是本地的)

vault: 拱形, 撑杆跳, 金库/保险库.  vault.centos.org是centos的代码所在的保险库, 在上面可以下载到它的所有版本的iso和gpg等文件

yum本地源最重要的是:  禁用/改名其他的repo文件,  修改要启用的repo文件中的enable=1就可以了

< 只要是/etc/yum.repos.d/ 下的 *.repo 文件都是可以的, 文件名可以随便,  里面的容器库也是任意随便取的, [ 容器名] 将会出现在 search, list等包的后面>


     vi /etc/yum.repos.d/ CentOS-Local.repo

    [Local]

    name=CentOS Local repositoyr

    baseurl=file:///mnt/centos6.3-bin-dvd1/

    gpgcheck=0

    # gpgkey=....

    enable=1

使用的时候:   

    首先,yum clean all            -清除yum的仓库源的缓存信息

                  -每次更换yum后都应该把yum缓存清除掉

    其次, yum --disablerepo=base --enablerepo=Local --disableplugin=fastestmirror list/ search等等.

(实际证明:  其实可以不用任何参数的: yum 直接就 list /search, 用不着去禁用/启用插件的...)

::: 只是在其他repo文件都不用修改/不用禁用, 不用disable的情况下, 临时使用CentOS-Media.repo的时候, 才需要用yum的选项, 如:

  yum --disablerepo=\* --enablerepo=c6-media list... <media.repo文件中有说明>

---------------------------------------------------------

http://vault.centos.org/下面的isos的意思是:  iso-s, 是iso的复数形式,表示很多的iso镜像文件可用,如: livecd livedvd, centos-6.3-bin.dvd1....

penetrate: ['penitreit] v. 刺入,穿透; 跻身, 打入; 看穿,洞悉

the knife penetrated enemy's stomach.

he has penetrated into high society.

i could not penetrate the mystery ['mistri]

armor: n. 装甲, v.为...装装甲  armor plate is im'penetrable by ordinary bullets.

per'turb : v. 使...混乱不堪,  使...混乱,

->imperturbed, imper'turbable : 沉静的, 稳重不慌的.

rpm 导入一个安全的公钥:  rpm  --import /etc/pki/rpm-gpg/*

centos6.3的iso共有2张碟片, 第一和第二碟除了都包含Packages包外, 第一碟主要是要多:

  images, isolinux, repodata...   此外, 两张碟都有同样的rpm-gpg-key....

/第一张碟中de/repodata/repomd.xml的作用?

repodata: 是仓库的数据库文件, 使用的是sqlite数据库, 格式为 .xml.gz

repomd.xml:  md:metadata 表示元数据, 是仓库的索引数据库文件.

由于在dvd2第二张碟中没有repodata这个文件夹, 所以单独使用dvd2 是不能作为本地源的

repodata中有四个重要的文件: filelists.xml.gz, primary.xml.gz , repomd.xml , other.xml.gz,  如果没有repodata这个目录, 就要用: createrepo.rpm这个包生成一下即可

#“repomd.xml”作用,提供了“更新.xml.gz”的下载信息和SHA校验值。
#这里“repomd.xml”里包括了3个文件 “other.xml.gz””filelists.xml.gz””primary.xml.gz”
#作用很明显了,“其他更新包列表”“更新文件集中列表”“主要更新包列表"

------------------------------------------

可以将base网络仓库和本地仓库结合起来联合起来使用... (方法是: 修改base, 将file:///mnt/cd 的地址加入到baseurl中去,  或者: yum --enablerepo=c6-media....)

yum仓库的enabled属性如果不写或者写成enabled=1表示生效, 写成enabled=0表示禁用. 即默认的就 是生效的!

base中默认的是使用的mirrorlist, 也可以直接使用centos的站点: baseurl=...

if the mirrorlist= does not work for you,  as a fall back you can try the remarked out baseurl= line instead.

::: 关于vi和vim gvim:

vi 和vim都是在命令行下使用的程序,  即: 可以在终端, 和 纯命令行模式下使用的程序

vi: 是系统自带的

vim:  初始时是没有"找不到"这个命令的, 要安装:  vim-enhanced这个包.  那么在终端和命令行模式下就可以使用了

gvim: 只有在X system下才有窗口界面, 虽然在命令行模式下也可以使用, 但是它 是跟vi终端不同的另外一个窗口...

使用 yum makecache命令,可以看到也是去下载对应源的"数据库" 主要是: filelists_db, primary_db, other_db, group_gz

如:  base/filelists_db, base/primary_db, base/other_db, base/group_gz.

这些仓库源的数据信息, 都是放在 /var/cache/yum/i386/6/....下的....

-------------------------------------------------

yum 的删除命令?

yum的删除命令可以用remove 和 erase. 这两个命令是相同的, 等价的:

yum remove a_package == yum erase a_package;

yum groupremove  group_package_name; == yum grouperase group_package_name

删除的依赖关系:

resolve:解决, 解析

假设a<-- b,   b包依赖a包, 那么删除a包的时候, b包也会被删除,   ( 皮之不存毛将焉附?)

    反之, 删除b包的时候, 并不会删除a包, 对a包没有影响.

to remove "A" package, the package "B" would as well as  be removed because B depends on A being removed.

上一篇:ThinkPHP5.0图片上传生成缩略图实例代码


下一篇:PorterDuffXfermode的用法