linux学习笔记012

程序:指令+数据

         指令:芯片

                   CPU:普通指令,特权指令

                   指令集

                  

C语言:

         Powerpc:二进制格式

 

         x86:

 

 

x86: 汇编

powerpc: 汇编

 

高级语言:

C:

 

软件包管理器的核心功能:

1、制作软件包;

2、安装、卸载、升级、查询、校验;

 

Redhat, SUSE, Debian

 

Redhat, SUSE: RPM

         RedhatPackage Manager

         PRMis Package Manager

Debian: dpt

 

依赖关系:

         X-->Y-->Z

        

         X-->Y-->Z

        

前端工具:yum, apt-get

后端工具:RPM, dpt

 

yum: Yellowdog Update Modifier

         yum

 

 

rpm命令:

         rpm:

                   数据库:/var/lib/rpm

         rpmbuild:

        

安装、查询、卸载、升级、校验、数据库的重建、验正数据包等工作;

 

rpm命名:

包:组成部分

         主包:

 

                   bind-9.7.1-1.el5.i586.rpm

         子包:

                   bind-libs-9.7.1-1.el5.i586.rpm

                   bind-utils-9.7.1-1.el5.i586.rpm

包名格式:

         name-version-release.arch(平台架构).rpm

         bind-major.minor.release-release.arch.rpm

 

主版本号:重大改进

次版本号:某个子功能发生重大变化

发行号:修正了部分bug,调整了一点功能

 

bind-9.7.1.tar.gz     

 

rpm包:

         二进制格式

                   rpm包作者下载源程序,编译配置完成后,制作成rpm包

                   bind-9.7.1-1.noarch.rpm

                   bind-9.7.1-1.ppc.rpm

 

rpm:

 

1、安装

rpm -i /PATH/TO/PACKAGE_FILE

         -h:以#显示进度;每个#表示2%;

         -v:显示详细过程

         -vv:更详细的过程

        

rpm -ivh /PATH/TO/PACKAGE_FILE

 

         --nodeps:忽略依赖关系;

         --replacepkgs:重新安装,替换原有安装;

         --force:强行安装,可以实现重装或降级;

        

2、查询

rpm -q PACKAGE_NAME: 查询指定的包是否已经安装

rpm -qa : 查询已经安装的所有包

 

rpm -qi PACKAGE_NAME: 查询指定包的说明信息;

rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表;

rpm -qc PACEAGE_NEME:查询指定包安装的配置文件;

rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;

 

rpm -q --scripts PACKAGE_NAME: 查询指定包中包含的脚本

        

rpm -qf /path/to/somefile: 查询指定的文件是由哪个rpm包安装生成的;

        

如果某rpm包尚未安装,我们需查询其说明信息、安装以后会生成的文件;

rpm -qpi /PATH/TO/PACKAGE_FILE

rpm -qpl

 

3、升级

rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 如果装有老版本的,则升级;否则,则安装;

rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:如果装有老版本的,则升级;否则,退出;

         --oldpackage:降级

        

4、卸载

rpm -e PACKAGE_NAME

         --nodeps

        

5、校验

         rpm-V PACKAGE_NAME

        

6、重建数据库

         rpm

                   --rebuilddb:重建数据库,一定会重新建立;

                   --initdb:初始化数据库,没有才建立,有就不用建立;

 

 

7、检验来源合法性,及软件包完整性;

加密类型:

         对称:加密解密使用同一个密钥

         公钥:一对儿密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去;

                  

         单向:

 

# ls /etc/pki/rpm-gpg/

         RPM-GPG-KEY-redhat-release

        

rpm -K /PAPT/TO/PACKAGE_FILE

         dsa,gpg: 验正来源合法性,也即验正签名;可以使用--nosignature,略过此项

         sha1,md5: 验正软件包完整性;可以使用--nodigest,略过此项

        

        

 

rpm --import/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release: 导入密钥文件

 

 

 

 

 

1、rpm -qf

2、rpm -qpl

         l:List

         i:软件包的信息;

3、--import/etc/pki/rpm-gpg/

4、--rebuilddb

 

 

rpm --> yum

 

HTML: HyperText Mark Language

XML: eXtended Mark Language

 

XML, JSON: 半结构化的数据

 

yum仓库中的元数据文件:

primary.xml.gz

         所有RPM包的列表;

         依赖关系;

         每个RPM安装生成的文件列表;

filelists.xml.gz

         当前仓库中所有RPM包的所有文件列表;

other.xml.gz

         额外信息,RPM包的修改日志;

 

repomd.xml

         记录的是上面三个文件的时间戳和校验和;

        

yum install zsh

 

comps*.xml: RPM包分组信息

        

 

ftp://172.16.0.1/pub/{Server,VT,Cluster,ClusterStorage}

 

如何为yum定义repo文件

[Repo_ID]

name=Description

baseurl=

         ftp://

         http://

         file:///本地文件

enabled={1|0}

gpgcheck={1|0} 检查

gpgkey=

 

 

yum [options] [command] [package ...]

 

-y: 自动回答为yes

--nogpgcheck

 

 

list: 列表

         支持glob

         all

         available:可用的,仓库中有但尚未安装的

         installed:已经安装的

         updates:可用的升级

 

 

 

clean: 清理缓存

         [packages | headers | metadata | dbcache | all ]

        

 

 

repolist: 显示repo列表及其简要信息

         all

         enabled: 默认

         disabled

 

install: 安装

yum install PACKAGE_NAME

 

update: 升级

update_to: 升级为指定版本

 

remove|erase:卸载

 

info:

 

provides| whatprovides: 查看指定的文件或特性是由哪个包安装生成的;

        

groupinfo

grouplist

groupinstall

groupremove

groupupdate

 

 

 

/media/cdrom/{Server,VT,Cluster,ClusterStorage}

 

 

如何创建yum仓库:

createrepo

 

 

http://172.16.0.1/yum/{Server,VT}

 

 

 

练习:

1、将系统安装光盘挂载至/media/yum目录,用其实现yum仓库;

2、配置使用http://172.16.0.1/yum/{Server,VT,Cluster,ClusterStorage}为可用yum仓库;

 

 

写一个脚本,完成以下功能:

说明:此脚本能于同一个repo文件中创建多个Yum源的指向;

1、接受一个文件名做为参数,此文件存放至/etc/yum.repos.d目录中,且文件名以.repo为后缀;要求,此文件不能事先存,否则,报错;

2、在脚本中,提醒用户输入repo id;如果为quit,则退出脚本;否则,继续完成下面的步骤;

3、repo name以及baseurl的路径,而后以repo文件的格式将其保存至指定的文件中;

4、enabled默认为1,而gpgcheck默认设定为0;

5、此脚本会循环执行多次,除非用户为repoid指定为quit;

 

if [ -e $1 ]; then

 echo "$1 exist."

 exit 5

fi

 

[repo id]

name=

baseurl=

enabled=

gpgcheck=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值