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

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

概述  软件运行和编译 ABI:Application Binary Interface         Windows与Linux不兼容                     ELF(Executable and Linkable Format)                      PE(Portable Executable)                 库级别的虚拟化:      

 

软件运行和编译

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,dnfYUM: 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]       @R_403_6889@=Some @R_403_6889@ 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]                 @R_403_6889@=                 baseurl=                 gpgcheck=                 enabled=创建yum仓库:                 createrepo [options] <directory>

  设置文件:

I/O Ports: I/O设备地址一切皆文件:open(),read(),write(),close()设备类型:             块设备:block,存取单位“块”,磁盘             字符设备:char,存取单位“字符”,键盘设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通信设备号码:            主设备号:major number,标识设备类型            次设备号:minor number,标识同一类型下的不同设备  

  设备文件:

磁盘设备的设备文件命名:/dev/DEV_fileSCSI,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光盘:iso9660windows:fat32,exFAT,NTFSUnix: FFS(fast),UFS(unix),JFS2网络文件系统:NFS,CIFS集群文件系统:GFS2,OCFS2(oracle)分布式文件系统: fastdfs,ceph,moosefs,mogilefs,glusterfs,LustreRAW:未经处理或者未经格式化产生的文件系统
总结

以上是内存溢出为你收集整理的linux的软件包管理,磁盘存储。全部内容,希望文章能够帮你解决linux的软件包管理,磁盘存储。所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1021015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存