软件包管理

应用程序  程序:Architecture

c语言:源代码-->(编译)二进制格式 脚本:解释器(二进制程序)

源代码-->编译--连接-->运行

程序:  库  静态库  动态库   共享库 配置信息 dir=/path/to/somewhere

程序组成部分  二进制程序  库  配置文件  帮助文件

glibc: gnu的c库

/boot /etc /usr /var 可以单独分区 /dev /lib /tmp /bin /sbin /proc /sys /mnt /media /home账号用户数据,单独分区 /root不能单独分区 /misc /opt /srv不能单独分区

新安装程序的库会放在 /lib,/usr/lib的中

/usr/share/man

/etc,/bin,/sbin,/lib 系统启动需要用到的程序,这些目路不能挂载到额外的分区上,必须在/上 (根目录下)

/usr/  bin  sbin  lib  操作系统的核心功能 ,可以单独分区

/usr/local  bin  sbin  lib  etc  man   /opt 第三方软件

/proc /sys  不能单独分区,默认为空

/dev:设备,不能单独分区:  udev内核根据驱动,自动创建设备文件

/root:不能单独分区 /var:建议单独分区 /boot:内核,initrd(initramfs) 操作系统启动过程  内核:  一般要单独分区,做成基本分区

POST-->BIOS(HD)-->(MBR)bootloader(文件系统结构,ext2,txt3,xfs)-->加载内核

程序:指令+数据

指令:芯片  CPU:普通指令,特权指令  指令集

c语言:  powerpc:二进制格式  x86:

软件包管理器: 打包成一文件:二进制程序,库文件,配置文件,帮助文件 生成数据库,追踪所安装的每一个文件

软件包管理器的核心功能: 1,制作软件包 2,安装,卸载,升级,查询,校验

Redhat,SUSE:RPM  Redhat Package Manager  RPM is Package Manager

Debian:dpt

依赖关系:  x-->y-->z

前端工具:yum,apt-get 后端工具:RPM,dpt

yum:Yellowdog Update Modifier

rpm命令:  rpm:   数据库文件: /var/lib/rpm  rpmbuild

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

rpm命名: 包:组成部分  主包:bind-9.7.1-1.i586.el5.rpm  子包:bind-libs_9.7.1-1.i586.el5.rpm

包名格式: name-version-release.arch.rpm bind-major.minor.release

主版本号:重大改进 次版本号:某个子功能发生重大变化 发行号:修正bug,调整一点功能

bind-9.7.1.tar.gz

rpm包: 二进制格式  rpm包作者下载源程序,编译配置完成后,制作成rpm包  bind-9.7.1-1.el5.rpm el5代表红帽企业版5  bind-9.7.1.noarch.rpm noarch代表无平台相关性

源码格式

rpm 1、安装 rpm -i /path/to/package_file  -h:以#显示进度,每个#标识2%  -v:显示详细过程  -vv:更详细的过程

rpm -ivh 文件     --nodeps:忽略依赖关系  --replacepkgs:重新安装,替换原有安装  --force:强行安装,可以实现重装或降级

2、查询 rpm -q package_name 查询指定表是否已经安装 rpm -qa 查询已经安装的所有包

rpm -qi package_name:查询某软件包的说明信息 rpm -ql package_name 查询指定软件包安装后生成的文件列表 rpm -qc package_name 查询指定安装包的配置文件 rpm -qd package_name 查询指定包的帮助文件 rpm -q --script pacage_name:查询指定安装中包含的脚本

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

3、升级 rpm -Uvh /path/to/new_package_file:如果装有老版本,则升级;否则,则安装 rpm -Fvh /path/to/new_package_file:如果装有老版本,则升级;否则,退出

4,卸载 rpm -e package_name     --nodeps 强行卸载

5,校验 rpm -V package_name

6、重建数据库

rpm   --rebuilddb  重建数据库,一定会重新建立   --initdb  初始化数据库,没有才建立,有就不用建立

7、校验来源合法性,及软件完整性 加密类型:  对称:加密解密使用同一密钥  公钥:一对密钥,公钥,私钥:公钥隐含余私钥中,可以提取出来,并公开出去

时间: 2024-11-17 23:54:02

软件包管理的相关文章

软件包管理之RPM

一.前言 在没有软件包管理器前,用户都是通过源代码的方式来安装软件.但是我们很容易发现,在每次安装软件时都必须对操作系统的境.编译的参数进行对应的编译,并且操作过程很是复杂,这对于不熟悉操作系统的朋友来说真心困难,那么有没有一款软件能让用户能很简单的安装所需的软件呢? 随着自由软件蓬勃发展,Linux系统的飞快发展,很多软件开发者.企业和社区将这些软件开始通过收集.整理.编译制作成distributions发布到常用的Linux操作系统上,但是后来发现,这样做在日后软件更新.系统更新上面都需要做

17、Linux软件包管理工具yum详解

yum介绍 yum客户端的使用 配置文件项作说明: 案例repo配置文件. 创建yum源命令(yum-config-manager) yum list相关命令 yum安装 yum更新和升级 yum查找和显示 yum删除程序 查看仓库 实战演练本地yum仓库(光盘) YUM内置变量 创建YUM仓库(http) yum介绍 yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安

Android的软件包管理服务PackageManagerService源码分析

Android系统下的apk程序都是通过名为PackageManagerService的包管理服务来管理的.PacketManagerService是安卓系统的一个重要服务,由SystemServer启动,主要实现apk程序包的解析,安装,更新,移动,卸载等服务.不管是系统apk(/system/app),还是我们手工安装上去的,系统所有的apk都是由其管理的. 以android 4.0.4的源码为例,android4.0.4/frameworks/base/services/java/com/

[Noi2015]软件包管理器

题目描述 Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软件包的安装所依赖的其它软件包),完成所有的配置.Debian/Ubuntu使用的apt-get,Fedora/CentOS使用的yum,以及OSX下可用的homebrew都是优秀的软件包管理器. 你决定设计你自己的软件包管理器.不可避免地,你要解决软件包之间的依赖问题.如果软件包A依赖软件包B,那

day08 网络设置、软件包管理

网络设置 1 ifconfig //最小化安装时不可用,需要安装安装包,命令为查看网卡信息 2 yum install net-tools 3 4 mtu 网卡的最大发送字节 5 6 iptables -F 清掉防火墙配置 7 setenforce 0 表示临时关闭selinux防火墙 8 9 10 ifconfig eno16777736(网卡号) 192.168.103/24 11 12 ifconfig eno16777736:0(虚拟出一块网卡) 192.168.16.104//24 1

BZOJ 4196: [Noi2015]软件包管理器

二次联通门 : BZOJ 4196: [Noi2015]软件包管理器 /* BZOJ 4196: [Noi2015]软件包管理器 树链剖分 树链剖分 , 用线段树维护链上的和与子树的和 对于1操作, 每次预先查询待修改点x点的深度 后查询1到x这条链上有多少已安装的, 然后上面的值减下面的值 对于2操作,每次查询以x为根的子树的大小 修改整颗子树即可.. 说白了其实就是板子题 */ #include <cstdio> #define Max 500090 inline int min (int

【NOI2015】软件包管理器

Description 你决定设计你自己的软件包管理器.不可避免的,你要解决软件包之间的依赖关系.如果A依赖B,那么安装A之前需安装B,卸载B之前须卸载A.0号软件包不依赖任何软件包.依赖关系不存在环(包括自环). 你的任务是,求出每次安装.删除操作会改变多少个包的状态. 安装一个已安装的软件包,或者卸载一个未安装的软件包,都不会改变任何软件包的安装状态,即在此情况下,改变安装状态的软件包数为0 每次操作不仅需要计算安装软件包数,还作为操作影响后来的安装/删除 Input 第一行一个整数n,表示

Linux 入门学习之rpm软件包管理

Linux入门之软件包管理 在linux有很多类的软件包管理机制,但是在redhat.centos这类版本的系统中,都会使用一种相同的机制,就是rpm软件包管理机制,当然,还有其它版本的linux使用的不同机制: debian:使.deb文件,dpkg包管理器 redhat:使用.rpm文件,rpm包管理器 软件包在使用中又分类两种(源码包和二进制包): 源码包:一般是提供了一些源码模块和编译脚步组合起来的压缩文件,命令格式如: name-version.tar.{gz|bz2|xz} 等,这里

1、linux软件包管理

linux软件包管理分为两种:RPM包管理和源码包管理,其中RPM包管理又有两种方式:①RPM命令管理,②YUM在线命令管理. RPM包依赖关系: 1.树形依赖 2.环形依赖 (用一条命令同时装来解决) 3.模块依赖,模块依赖查询网址www.rpmfind.net.例如,安装某个rpm包的时候需要依赖模块libodbcinst.so.2,解决步骤:在rpmfind网址上查找到模块所在的rpm包,然后安装该包即可. 区别“包全名”与“包名” 1.包全名:mysql-5.1.73-7.el6.x86