linux的软件包管理,磁盘存储。

软件运行和编译

ABI:Application Binary Interface

Windows与Linux不兼容

ELF(Executable and Linkable Format)

PE(Portable Executable)

库级别的虚拟化:

Linux: WINE

Windows: Cygwin

API:Application Programming Interface

POSIX:Portable OS

程序源代码-->预处理-->编译-->汇编-->链接

静态编译:.a

动态编译:.so

c程序编译过程:

静态和动态链接:

链接主要作用是把各个模块之间相互引用的部分处理好,使得各个模块之间能
够正确地衔接,分为静态链接和动态链接
 静态链接
       把程序对应的依赖库复制一份到包
       libxxx.a
       嵌入程序包
       升级难,需重新编译
       占用较多空间,迁移容易
 动态链接
      只把依赖加做一个动态链接
      libxxx.so
     连接指向
     占用较少空间,升级方便

静态和动态链接:

c程序静态链接

包和包管理器:

最初只有.tar.gz的打包的源码文件,用户必须编译每个他想在GNU/Linux
上运行的软件。用户们急需系统提供一种方法来管理这些安装在机器上的
软件,当Debian诞生时,这样一个管理工具也就应运而生,它被命名为
dpkg。从而著名的“package”概念第一次出现在GNU/Linux系统中,
稍后Red Hat才开发自己的“rpm”包管理系统
包的组成:
               二进制文件、库文件、配置文件、帮助文件
程序包管理器:
               debian: deb文件, dpkg包管理器
               redhat: rpm文件, rpm包管理器
               rpm:Redhat Package Manager
               RPM Package Manager

rpm包管理:

CentOS系统上使用rpm命令管理程序包:
                安装、卸载、升级、查询、校验、数据库维护
安装:
                 rpm {-i|--install} [install-options] PACKAGE_FILE…
                 -v: verbose
                 -vv:
                 -h: 以#显示程序包管理执行进度
                 rpm -ivh PACKAGE_FILE ...

  rpm包安装:

[install-options]
                 --test: 测试安装,但不真正执行安装,即dry run模式
                 --nodeps:忽略依赖关系
                 --replacepkgs | replacefiles
                 --nosignature: 不检查来源合法性
                 --nodigest:不检查包完整性
                 --noscripts:不执行程序包脚本
                        %pre: 安装前脚本 --nopre
                        %post: 安装后脚本 --nopost
                        %preun: 卸载前脚本 --nopreun
                        %postun: 卸载后脚本 --nopostun

  rpm包升级:

升级:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
         upgrade:安装有旧版程序包,则“升级”
                     如果不存在旧版程序包,则“安装”
         freshen:安装有旧版程序包,则“升级”
                      如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE ...
rpm -Fvh PACKAGE_FILE ...
--oldpackage:降级
--force: 强制安装

  yum:

CentOS: yum, dnf
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具

yum repository: yum repo,存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下)

文件服务器:
http://
https://
ftp://
file://

  yum配置文件:

yum客户端配置文件:
         /etc/yum.conf:为所有仓库提供公共配置
        /etc/yum.repos.d/*.repo:为仓库的指向提供配置
仓库指向的定义:
       [repositoryID]
       name=Some name for this repository
       baseurl=url://path/to/repository/
       enabled={1|0}
       gpgcheck={1|0}
       gpgkey=URL
       enablegroups={1|0}
       failovermethod={roundrobin|priority}
              roundrobin:意为随机挑选,默认值
               priority:按顺序访问
      cost= 默认为1000

  yum仓库:

yum的repo配置文件中可用的变量:
           $releasever: 当前OS的发行版的主版本号
           $arch: 平台,i386,i486,i586,x86_64等
           $basearch:基础平台;i386, x86_64
           $YUM0-$YUM9:自定义变量

 示例:
        http://server/centos/$releasever/$basearch/
        http://server/centos/7/x86_64
        http://server/centos/6/i386

  yum源:

阿里云repo文件
http://mirrors.aliyun.com/repo/

CentOS系统的yum源
           阿里云:https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
           清华大学:https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/x86_64/

EPEL的yum源
阿里云:https://mirrors.aliyun.com/epel/$releasever/x86_64

阿里巴巴开源软件
https://opsx.alibaba.com/

  yum命令:

yum命令的用法:
             yum [options] [command] [package ...]

显示仓库列表:
             yum repolist [all|enabled|disabled]

显示程序包:
             yum list
             yum list [all | glob_exp1] [glob_exp2] [...]
             yum list {available|installed|updates} [glob_exp1] [...]

安装程序包:
             yum install package1 [package2] [...]
             yum reinstall package1 [package2] [...] (重新安装)

升级程序包:
                             yum update [package1] [package2] [...]
                             yum downgrade package1 [package2] [...] (降级)
   检查可用升级:
                             yum check-update
卸载程序包:
                             yum remove | erase package1 [package2] [...]

系统光盘yum仓库:

系统安装光盘作为本地yum仓库:
  (1) 挂载光盘至某目录,例如/mnt/cdrom
                 mount /dev/cdrom /mnt/cdrom

  (2) 创建配置文件
                 [CentOS7]
                 name=
                 baseurl=
                 gpgcheck=
                 enabled=

创建yum仓库:
                 createrepo [options] <directory>

  设置文件:

I/O Ports: I/O设备地址

一切皆文件:open(), read(), write(), close()

设备类型:
             块设备:block,存取单位“块”,磁盘
             字符设备:char,存取单位“字符”,键盘

设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信

设备号码:
            主设备号:major number, 标识设备类型
            次设备号:minor number, 标识同一类型下的不同设备

  设备文件:

磁盘设备的设备文件命名:/dev/DEV_FILE
SCSI, SATA, SAS, IDE,USB: /dev/sd
虚拟磁盘:/dev/vd 、/dev/xvd

不同磁盘标识:a-z,aa,ab…
         /dev/sda, /dev/sdb, ...

同一设备上的不同分区:1,2, ...
        /dev/sda1, /dev/sda5

硬盘存储术语
        head:磁头
        track:磁道
        cylinder:柱面
        sector:扇区,512bytes

  文件系统类型:

Linux文件系统:
             ext2(Extended file system) :适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分区
             ext3:是 ext2 的改进版本,其支持日志功能,能够帮助系统从非正常关机导致的异常中恢复。它通常被用作通用的文件系统
             ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
xfs:SGI,支持最大8EB的文件系统
btrfs(Oracle), reiserfs, jfs(AIX), swap
光盘:iso9660
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
网络文件系统:NFS, CIFS
集群文件系统:GFS2, OCFS2(oracle)
分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统

  

原文地址:https://www.cnblogs.com/guopeijun123/p/11030357.html

时间: 2025-01-16 04:57:08

linux的软件包管理,磁盘存储。的相关文章

Linux之软件包管理

软件包管理有一般有3种机制:源代码方式.RPM.YUM 软件包的组成格式与存放路径: 1.二进制程序 主要存放的路径:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin, /usr/local/APP/{bin,sbin} 2.库文件(开发库.运行库) 主要存放的路径:/lib64, /usr/lib64, /usr/local/lib64, /usr/local/APP/lib 3.配置文件 主要存放的路径:/et

Linux下软件包管理

为什么要有软件包管理器? 虽然使用源代码进行编译可以定制一些高级功能,但对于Linux发行商来说,管理软件不容易,而且不是每个使用Linux的用户都有能力进行编译安装,如果能够将软件预先在相同的硬件与操作系统上编译好在发行出发行版的话,就可以让相同的发行版具有完全一致的软件版本,再加上安装/删除/管理机制,从此对软件包的管理也就相对简单得多,所以就将源代码包按照对应的平台格式封装起来,并发行出来,发行出来的软件包,我们在红帽系列的系统上称之为 RPM: 两大主流的软件包管理器版本: RPM:RP

Linux rpm 软件包管理命令

RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序” rpm 执行安装包二进制包(Binary)以及源代码包(Source)两种.二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译.安装.源代码包经常以src.rpm作为后缀名. 常用命令组合: -ivh:安装显示安装进度--install--verbose--hash-Uvh:升级软件包--Update:-qpl:列出RPM软件包内的文件信息[Query Pac

linux下软件包管理-源码包-二进制包

linux软件包管理  1.软件包分类     源码包     二进制包(rpm包)      2.rpm包命名规则      命名规则:         name-major-minjor-release-release.arch.rpm                   name:包名         major:主版本号         minjor:次版本号         release:发行版本,修复了重大的bug         release:rpm的功能更新         

linux系统管理-软件包管理

概述: inux家族中的软件包管理有很多工具. 一种是在debiton系列的linux中,以像ubuntu的apt-get为代表.对于此种方式的管理方式,个人感觉挺简单方便的, 一种是在Fedora和RedHat以及SUSE中,以YUM为代表.这种包管理,因为现在是在redhat的环境中,不太熟悉,今天就总结一下. 概念:  yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能

Linux的软件包管理

1.二进制的软件包管理(RPM.YUM) 2.源代码包安装 3.脚本安装(Shell或Java脚本) 4.Debian系Linux软件包管理简介 一.RPM包管理 RPM软件包的一个例子: sudo-1.7.2p1-5.el5.i386.rpm 其中包括软件名(sudo),版本号(1.7.2pl),发行号(5.el5),和硬件平台(i386). 1.卸载 rpm -e sudo rpm -e [软件名] 注意:如果其他软件包有依赖关系时,卸载时会产生提示信息,可使用--nodeps强行卸载 2.

(016) Linux之软件包管理

十年运维系列之基础篇 - Linux 作者:曾林 联系:[email protected] 网站:www.jplatformx.com 版权:文章未经同意请勿转载 一.引言 决定Linux发行版本质量最重要的因素是软件包系统和支持该发行版本社区的活力.进一步接触Linux就会发现Linux软件的研究现状相当活跃.事物总是在不停地变化,许多一流的Linux发行版本每6个月就有一个新版本问世,而且许多个人程序每天都在更新.要想同步这些日新月异的软件,我们就需要好的工具进行软件包管理. 软件包管理是一

Linux - rpm 软件包管理

rpm 是 Red-Hat Package Manager(rpm 软件包管理器)的缩写 rpm 的命名规则: 第一部分为 rpm 软件包的名称,第二部分是版本号,第三部分是版本发布次数,第四部分是软件包适用的平台 -i:安装该软件包 -v:显示安装的详细信息 -h:显示安装的进度 [[email protected] test]# rpm -ivh python-tox-1.4.2-8.el7.noarch.rpm 也可以直接安装网络上的软件包 [[email protected] test]

学习日志---linuxの RPM软件包管理器

rpm包的使用: rpm包命名格式: 源程序:name-version.tar.{gz|bz2|xz}  打包在一起的源码 version: major.minor.release rpm包:name-version-release.arch.rpm  这是打包好的二进制程序了 release:通常包含rpm的制作发行号,还包含适用的OS arch:这个是适用于哪种硬件架构,还有位数 例子:bash-4.3.2-2.el6.x86_64.rpm OS平台: el6: redhat enterpr