Linux的包管理工具介绍-创新互联

 概述:

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于网站设计、成都网站设计、通许网络推广、小程序开发、通许网络营销、通许企业策划、通许品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们大的嘉奖;创新互联建站为所有大学生创业者提供通许建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com

   本章内容:软件的运行环境,软件包基础,rpm包管理,yum管理,定制yum仓库,编译安装

一、软件运行环境

 1.API:Application Programming Interface (应用程序开发接口)    POSIX:Portable OS(国际标准)    程序源代码–> 预处理–> 编译–> 汇编–> 链接        静态编译:        共享编译:.so    ABI:Application Binary Interface(应用二进制程序接口)         Windows与Linux不兼容         linux:文件格式:ELF(Executable and Linkable Format)         win:文件格式:exe,msl PE(Portable Executable)    库级别的虚拟化:         Linux: WINE(提供模拟windows的库,运行win环境)         Windows: Cywin(提供linux的运行环境)          2.开发语言    系统级开发         C/C++(依赖于c库)         httpd,nginx,vsftpd,go    应用级开发         java(依赖于jvm虚拟机)         Python(openstack云站),php,perl(依赖于per解释器),ruby          3.程序格式:         c/c++         源代码:文本格式的程序代码;         编译开发环境:编译器,头文件,开发库         二进制格式:文本格式的程序代码–>编译器–>二进制格式(二进制程序、库文件、配置文件、帮助文件)     java/Python         源代码:编译能够在其虚拟机(jvm/pvm)运行的格式;         开发环境:编译器、开发库         二进制     项目构建工具         c/c++:make      jave:maven

二、包管理

1.二进制应用程序的组成部分:         二进制文件、库文件、配置文件、帮助文件          2.程序包管理:         源代码–>目标二进制格式(二进制程序、库文件、配置文件、帮助文件)–>组织成为一个或有限几个“包文件”(安装,升级,卸载,查询,校验)     程序包管理器:         deblan: dpt,dpkg  以".deb"后缀         redhat: rpm (redhat package manager) 以 ".rpm"后缀          S.u.S.E:rpm, ".rpm"命令          3.包命令格式     源代码:          name-VERSION.tar.gz|bz2|xz          VERSION: major(主版本号).minor(次版本号).release(发行号)     rpm包命名格式:          name-VERSION-release.arch.rpm          VERSION: major.minor.release(rpm包发行号)          changelog文档(内容修复改进的相关文档)          例:bash-4.2.46-19.el7.x86_64.rpm          release:release.OS     常见的arch:          x86: i386, i486, i586, i686          x86_64: x64, x86_64, amd64powerpc: ppc          跟平台无关:noarch (适用于所有平台)           4.包:分类和拆包          Application-VERSION-ARCH.rpm: 主包          Application-devel-VERSION-ARCH.rpm  开发子包          Application-utils-VERSION-ARHC.rpm  其它子包          Application-libs-VERSION-ARHC.rpm   其它子包      包之间:可能存在依赖关系,甚至循环依赖      自动解决依赖包管理前端工具:          yum:rpm包管理器的前端工具          apt-get:deb包管理器前端工具          zypper: suse上的rpm前端管理工具          dnf: Fedora 18+ rpm包管理器前端管理工具           5.库文件      查看二进制程序所依赖的库文件:          ldd /PATH/TO/BINARY_FILE      管理及查看本机装载的库文件:          ldconfig          /sbin/ldconfig-p: 显示本机已经缓存的所有可用库文件名及文件路径映射关系          配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf          缓存文件:/etc/ld.so.cache           6.包管理器      程序包管理器:          功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作      程序包的组成清单(每个程序包单独实现)          RPM包内的文件清单          RPM的元数据,如名称,版本,依赖性,描述等          安装或卸载时运行的脚本      数据库(公共)  路径:/var/lib/rpm           程序包名称及版本          依赖关系          功能说明          包安装后生成的各文件路径及校验码信息               7. 获取程的来源                       1)系统发版的光盘或官方的服务器; CentOS镜像:           http://mirrors.aliyun.com           http://mirrors.sohu.com           http://mirrors.163.com 2) 项目官方站点 3) 第三方组织:       Fedora-EPEL       搜索引擎:           http://pkgs.org           http://rpmfind.net           ttp://rpm.pbone.net 4) 自己制作

三、CentOS系统上rpm命令管理程序包:

功能:安装、卸载、升级、查询、校验、数据库维护

1.安装

格式:rpm -i[option] PACKAGE_FILE 选项:      -i:表示install安装      -v -vv:表示显示安装过程,后者显示更加详细;      -h:以#号显示进度条格式;      -nodeps:忽略依赖关系      -force:强制动作,注意安装成功后可能不能运行;      -test:测试安装,作为测试检查      -nosignature:不检查签名就是来源合法性;      -nodigest:不检查包完整性;MD5头;      -noscipts:不执行程序包脚本片断                 注意:rpm自带四类脚本                           %pre:安装前脚本;   -nopre                           %post:安装后脚本;  -nopost                           %preun:卸载前脚本; -nopreun                           %postun:卸载后脚本;-nopostun  使用:        rpm -ivh  PACKAGE_FILE

2.升级

格式: rpm -U|F[optIon] PACAGE_FILE   选项:      -U:表示不管软件事先是否存在都要升级,存在就升级,不存在就安装;      -F:表示软件软件存在就升级,如何不存在,就放弃升级;      -oldpackage:降级,如果升级之后发现有Bug或者兼容性问题,可以使用此选项回滚到升级前的版本;      -force:强制动作,注意安装成功后可能不能运行;      -replacepkgs:注意不能替换配置文件;      注意:         (1)不要对kernel做升级操作;支持多kernel并存;可以直接安装;         (2)修改过的配置升级不会覆盖,升级同新文件,会重命名为file.rpmnew

3.查询:

格式:rpm -q[option] [PACKAGE-NAME|PACKAGE_FILE] 选项:      -qa:查询系统所有已安装的程序包;      -qf /path/to/file:查询文件是由那个程序包生成;      -ql:查询程序生成的文件:      -qi:查询程序属性信息;      -qc:查询程序配置文件;      -qd:查询程序提供的文档      -q -whatprovides CAPABILITY(功能):查询这种CAPABILITY由那个程序提供;      -q -whatrequires CAPABILITY:查询这种CAPABILITY被哪些程序包依赖;      -q -scripts:查询程序包生成的脚本;      -q -changelog:查询软件历史      查询未安装的软件包信息,需要加-p选项跟上面的选项结合使用,后面的参数必须是PACKAGE_FILE;      列如:          -qpi:查询指定PACKAGE_FILE的程序属性信息;

4.卸载

格式:rpm -e[option] PACKAGE-NAME 选项:      -vh:显示过程      -nodeps:忽略依赖      -noscripts:忽略脚本      -allmatches:卸载所有匹配指定名称的程序包,也就是说卸载软件名称中包含此名称的所有包;      -test:测试检查卸载,不是真卸载  注意:      卸载会检查依赖关系,如果卸载的软件被其他程序依赖,请谨慎卸载,否则导致其依赖程序无法运行;       使用:        rpm -e  PACKAGE_FILE

5.校验

工作原理:校验检查的是软件包来源的合法性和完整性,要想对它们校验检查,必须要有校验机制,这种机制是根据签名和加密实现的,通常发行版的光盘中会有一个包含所有软件特征码的文件,特征码是根据软件包特征提取的,通过单项加密实现的用来校验软件包的完整性,如果软件包在获取途中被修改,在系统中再次提取软件包特征码,跟系统已有的特征码文件比对,不同则判断被攥该,修改过的软件包,根据相同的加密算法提取的特征肯定不同;来源合法性是根据签名实现的;特征码文件被称为公钥;校验是由校验程序完成的,默认rpm命令安装时会调用; 公钥获取:       官方网站       系统光盘       系统配置文件中,这是系统在安装时从安装光盘复制进去的         系统公钥位置:/etc/pik/rpm-gpg/RPM-GPG-KEY-CentOS-7 导入公钥:          rpm -import /path/to/pub.key 校验软件:          rpm -V PACKAGE-NAME:校验安装文件自安装后是否被修改过,根据PMS记录信息判断;          rpm -K PACKAGE_FILE:对指定未安装的软件包进行手工校验;

6.数据库重建

默认数据库目录位置:/var/lib/rpm 语法格式:        rpm -initdb     :初始化数据库        rpm -rebuilddb  :重新构建        -dbpath=/path/  :指定数据库创建位置;

四、CentOS系统上yum命令管理程序包:

1.yum配置文件

yum repository:yum repo(yum仓库),存储了众多rpm 包及包的相关的元数据文件(放置于特定目录repodata) 文件服务器:       ftp://       http://       file:/// yum 客户端配置文件:      /etc/yum.conf :为所有仓库提供公共配置,一般不做更改      /etc/yum.repos.d/*.repo :为仓库的指向提供配置 仓库指向的定义:      [repositoryID]       name=Some name for this repository,yum仓库描述       baseurl=url://path/to/repository/,yum仓库路径,支持上述三种路径       enabled={1|0},0表示禁用,1表示启用,可以不写表示启用,但是写错enabled会造成禁用       gpgcheck={1|0},此行不写要检测,0是不检测包,1是检查包       pgkey=URL 此外假如系统上已经装有检查文本文件/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7,相当于以上两项       enablegroups={1|0},包组       failovermethod={roundrobin|priority},优先级-(默认为:roundrobin,意为随机挑选; cost=默认为1000)

2.yum 命令的用法

格式:yum [options] [command] [package …] 1)显示仓库列表:     yum repolist [all|enabled|disabled] 2)显示程序包:     yum list 3)安装程序包(centos7上yum支持补全,因为其bash版本更高):     yum install package1 [package2] […]        yum reinstall package1 [package2] […] (重新安装) 4)升级程序包:     yum update [package1] [package2] […]        yum downgrade package1 [package2] […] (降级) 5)检查可用升级:     yum check-update 6)卸载程序包:     yum remove | erase package1 [package2] […]  ) 7)查看程序包信息information:     yum info […] 8)查看指定的特性( 可以是某文件)是由哪个程序包所提供:     yum provides | whatprovides feature1 [feature2] […],类似于rpm的-qf选项 9)清理本地缓存(yum缓存在主配置文件中有说明即是#cat /etc/yum.conf有相关说明): 安装程序包时,下载的包文件存放于cachedir=/var/cache/yum/$basearch/$releasever中,其中$basearch是硬件架构,$releasever是操作系统版本号     yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ] . 10) 构建缓存:     yum makecache 11) 搜索:     yum search string1 [string2] […],以指定的关键字搜索程序包名及summary信息 12) 查看指定包所依赖的capabilities:     yum deplist package1 [package2] […] 13) 查看yum 事务历史:         yum历史日志文件:/var/log/yum.log     #cat /var/log/yum.log也可以查看yum事务历史     yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats] 14) 包组管理的相关命令: 单个包的功能有限,为了实现复杂的功能,需要许多包组成包组     yum groupinstall group1 [group2] […] ,安装包组     yum groupupdate group1 [group2] […] ,升级包组     yum grouplist [hidden] [groupwildcard] […] ,查看包组列表     yum groupremove group1 [group2] […] ,卸载包组     yum groupinfo group1 […] ,查看包组信息

3. 如何使用光盘当作本地yum 仓库

1) 挂载光盘至某目录,例如/mnt/cdrom [root@localhost ~]# mkdir /mnt/cdrom [root@localhost ~]# mount /dev/cdrom /mnt/cdrom  2) 创建配置文件 [root@localhost ~]# vim /etc/yum.repos.d/yum.repo [cdrom] name=yum test baseurl=file:///mnt/cdrom或者file:///misc/cd gpgcheck=0 gpgkey= enabled=1

4. yum 的命令行选项

-nogpgcheck:禁止进行gpgcheck检查 -y:自动回答为“yes” -q:静默模式 -disablerepo=repoidglob:临时禁用此处指定的repo -enablerepo=repoidglob:临时启用此处指定的repo -noplugins:禁用所有插件

5. yum 仓库

1) yum 的repo配置文件中可用的变量:      $releasever: 当前OS的发行版的主版本号      $arch: 平台,i386,i486,i586,x86_64等等      $basearch:当前基础平台架构 实例:      baseurl=http://server/centos/$releasever/$basearch/      http://server/centos/7/x86_64      http://server/centos/6/i384 2) 创建自定义yum仓库:      createrepo [options] <directory>      其中yum需要的一些依靠性、校验信息等等都存放在repodata目录中,所以要自定义建立yum源不仅需要rpm包,也是离不开repodata目录,repodata目录文件可以由createrepo命令生成

五、源码安装

  1. C代码编译安装三步骤-在源代码目录下操作

C代码编译安装三步骤:    1) ./configure:         (1) 通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及Makefile.in文件生成makefile;      (2) 检查依赖到的外部环境;    2) make:      根据makefile文件,构建应用程序;    3) make install 开发工具:      autoconf: 生成configure脚本      automake:生成Makefile.in         建议:安装前查看INSTALL,README 开源程序源代码的获取:      官方自建站点:          apache.org (ASF)          mariadb.org      ...      代码托管:             SourceForge          Github.com          code.google.com c/c++: gcc (GNU C Complier) 编译C源代码:     前提:提供开发工具及开发环境     开发工具:make, gcc等     开发环境:开发库,头文件     glibc:标准库 通过“包组”提供开发组件     CentOS 6: "Development Tools", "Server Platform Development", 第一步:configure脚本     选项:指定安装位置、指定启用的特性         --help: 获取其支持使用的选项     选项分类:         装路径设定:       --prefix=/PATH/TO/SOMEWHERE: 指定默认安装位置;默认为/usr/local/       --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安装位置;     system types:         Optional Features: 可选特性      --disable-FEATURE      --enable-FEATURE[=ARG]         Optional Packages: 可选包      --with-PACKAGE[=ARG]      --without-PACKAGE 第二步:make 第三步:make install

2. 安装后的配置:(以httpd为例子)

1) 将编译安装后的二进制程序目录导入至PATH 环境变量中,就可以直接使用命令而不再用写绝对路径或相对路径; 编辑文件/etc/profile.d/NAME.sh #vim /etc/profile.d/http2.sh PATH=$PATH:/usr/local/http2/bin 2) 导入库文件路径 编辑/etc/ld.so.conf.d/NAME.conf 添加新的库文件所在目录至此文件中#vim /etc/ld.so.conf.d/http2.sh /usr/local/http2/lib 然后让系统重新生成缓存#ldconfig [-v] 3) 导入头文件,头文件的默认位置是/usr/include 基于链接的方式实现:ln -sv [root@localhost htdocs]# cd /usr/include [root@localhost include]# ln -s /usr/local/http2/include http2 4) 导入帮助手册 编辑/etc/man.config|man_db.conf文件 添加一个MANPATH /usr/local/http2/man

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

网站标题:Linux的包管理工具介绍-创新互联
文章出自:https://www.cdcxhl.com/article44/degsee.html

成都网站建设公司_创新互联,为您提供网站策划网站改版用户体验品牌网站建设搜索引擎优化关键词优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司