linux安装方式将软件分包,linux之程序包安装(示例代码)

一、软件包组成:

软件包组成:(二进制程序、库文件、配置文件、帮助文件)

二进制程序文件:

存放路径:/bin;/sbin;/usr/bin;/usr/sbin;/usr/local/bin;/usr/local/sbin;

/bin;/sbin:系统自身启动需要的二进制文件;

/usr/sbin;/usr/local/bin:系统启动后完成基本管理需要的二进制文件;

/usr/local/bin;/usr/local/sbin:第三方管理需要的二进制文件;

库文件:(也是可执行文件,但不能独立执行,需要调用执行)在程序中通常称为函数;

存放路径:/lib;/usr/lib;/usr/local/lib;

库文件分类:静态库(以.a结尾的文件)、动态库(以.so结尾的文件)

库文件配置路径:/etc/ld.so.conf;/etc/ld.so.conf.d/*.conf

配置文件:

存放路径:/etc

帮助文件:

帮助文件分类:手册(/usr/share/man);README;INSTALL;通常后两个都放在/usr/share/doc,

man的配置文件在/etc/man_db.conf(定义man去哪里找帮助文件)

二、linux程序包管理工具:

包管理工具应包含:文件清单、文件存放位置、软件功能说明、依赖关系(依赖其他程序包)

程序包管理工具数据库:追踪软件安装位置,便于卸载操作

软件包前端管理工具会自动查找、解决软件包之间的依赖关系,然后安装需要的软件包。

Debian :dpt;apt-get(软件包前端管理工具)

Redhat:rpm;yum(软件包前端管理工具)

suse:rpm

软件包安装方法:包管理工具安装、源代码编译安装、软件包管理器前端工具、通用二进制格式;

包管理工具安装:rpm实现的功能:打包、安装、查询、升级、校验、卸载等;

编译安装:将源代码编译成二进制格式文件;需提供环境(如:编译器:gcc,g++;库文件),

由于编译安装只能手动进行安装,为了方便管理(卸载、升级),一般安装到特定的文中,带来的问题:如找不到二进制文件执行(因为在环境变量中没有定义)、找不到库文件、找不到帮助手册(可以通过修改配置文件或使用命令:man -M /path来指定帮助文件路径)、头文件路径(/usr/include)。

三、软件包及源程序命名:

1、源程序命名:

name-version.tar.{gz | bz2 | xz}  (包名-版本号.后缀名)

其中的版本号组成:major.minor.release (主版本号.次版本号.发行号);主版本号一般是程序的重大改变,次版本号一般是程序部分功能发生改变,发型号一般是是bug修复,一次升级时要查看相应版本号。

如:bash-4.3.1.tar.xz

2、rpm包命名:

name-version-release.arch.rpm (包名-源程序版本号-打包版本号.平台.rpm;平台指主机架构如:i686,x86_64,amd64,ppc,noarch(表示与平台无关)) 此处的release是发行者打包的管理号,可能还包括所适用的操作系统(如:centos6);

而version也包含major.minor.release (主版本号.次版本号.发行号),解释同源程序的release;

如:bash-4.3.2-5.e16.x86_64.rpm  包名.源程序版本号.打包版本号及适用操作系统.平台.rpm

3、rpm分包命名:将某些功能做成独立的包,需要此功能才安装。

主包包名-分包包名--version-release.arch.rpm   一般分包会依赖于主包,也就是说安装分包必须安装主包;

主包:核心包;bind

分包:支包;bind-chroot

如:bind-chroot

4、程序包位置:

一般放在packet下

四、软件包获取及验证软件包:

红帽软件包第三方平台:epel,现在由fedora来维护;因此又叫fedroa-epel:

rpm包验证机制:来源合法性、包的完整性;

gpg pgp:

redhat系列官方公钥存放位置:

[[email protected] ~]# ls /etc/pki/rpm-gpg/    //显示公钥文件

RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Debug-7  RPM-GPG-KEY-CentOS-Testing-7

[[email protected] ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7    //导入公钥

[[email protected] ~]# rpm -K zziplib-utils-0.13.62-5.el7.x86_64.rpm            //验证包来源合法

zziplib-utils-0.13.62-5.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK

五、rpm安装、卸载、

INSTALLING, UPGRADING, AND REMOVING PACKAGES:

1、rpm安装:  要指定安装文件的路径(从哪个文件安装)

rpm {-i|--install} [install-options] PACKAGE_FILE ...

install-options:

-v:显示详细信息;

-vv:显示更详细信息;

-h:以#号显示安装进度,一个#表示2%的进度

--nodeps:忽略依赖关系;注意:忽略依赖关系可能能安装软件包,但安装后不一定能正常使用;

--test:仅测试安装,但不安装

--replacepkgs:重新安装软件包,替换已安装包的所有文件;

常用组合:-ivh

如:

[[email protected] ~]# rpm -ivh /cdrom/Packages/zsh-5.0.2-14.el7.x86_64.rpm

[[email protected] ~]# rpm -ivh zziplib-utils-0.13.62-5.el7.x86_64.rpm

error: Failed dependencies:

libzzip-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

libzzipfseeko-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

libzzipmmapped-0.so.13()(64bit) is needed by zziplib-utils-0.13.62-5.el7.x86_64

zziplib(x86-64) = 0.13.62-5.el7 is needed by zziplib-utils-0.13.62-5.el7.x86_64

[[email protected] ~]# rpm -ivh /cdrom/Packages/

注意:rpm安装包不会自动安装依赖的包;

[[email protected] ~]# rpm -ivh --replacepkgs /cdrom/Packages/zsh-5.0.2-14.el7.x86_64.rpm

2、rpm卸载:卸载只需要指包名;

rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts]

--nodeps:忽略依赖关系;

--test:测试卸载

如:

注意:在安装或卸载的时候,如果有写文件做了改动,rpm会将修改的文件cp一份作为备份,可以在警告信息中看到;waring。。。。。

3、rpm查询:

rpm {-q|--query} [select-options] [query-options]

rpm -qa:查询所有的包   //不支持golbing

rpm -qa | grep ‘包名’  :查询特定的包

rpm -qi ‘包名’:查询软件包的摘要信息;

rpm -ql ‘包名’ :查询软件包安装产生的文件清单;

rpm -qc ‘包名’: 查询软件包安装后的配置文件清单;

rpm -qd ‘包名’:查询软件包安装后产生的帮助文档信息清单;

如:

package zsh is not installed

[[email protected] ~]# rpm -qa | grep zsh

zsh-5.0.2-14.el7.x86_64

[[email protected] ~]# rpm -qi zsh    //查询软件包的相关摘要信息

[[email protected] ~]#  rpm -ql zsh  | less//查询zsh安装产生的文件清单,并分页显示;

QUERYING AND VERIFYING PACKAGES:

rpm {-q|--query} [select-options] [query-options]

rpm {-V|--verify} [select-options] [verify-options]

rpm {-U|--upgrade} [install-options] PACKAGE_FILE ...

rpm {-F|--freshen} [install-options] PACKAGE_FILE ...

[--notriggers] [--test] PACKAGE_NAME ...

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值