Linux程序包管理与初识磁盘

Linux 程序包管理

  • API:Application Binary Interface(应用程序的二进制接口)
  • ABI:APPlication Program Inertface(应用程序的开发接口)
  • Windows : exe,msi
  • Windows与Linux不兼容
  • ELF:(Executale and Linkable Format):可执行可连接格式,linux运行格式
  • PE:(Portable  Executable)可移植可执格式Windows运行格式
  • 库级别的虚拟化:

  • 要想在Windows与Linux上分别运行对方的应用程序需:
  • WinE,在linux上模拟windows系统
  • cywin:在windows上模拟linux系统
  • 系统级开发:

  • c/c++:httpd,vsftpd,nginx(服务类应用程序)
  • go
  • 应用级开发

  • java /Python/perl/ruby/php:
  • java:hadoop,hbase,运行java程序要依赖(jvm  java虚拟机解释器)
  • Python:openstack(云操作系统)依赖(Python 虚拟机解释器pvm)
  • c/c++ 程序格式:

  • 源代码:文本格式的程序代码:
  • 编译开发环境:编译器 , 头文件 , 开发库 ,
  • 二进制格式:文本格式的程序代码-->编译器-->二进制格式(二进制程序, 库文件,  配置文件 ,帮助文件)
  • java/Python程序格式:

  • 源代码:要编译成能够在其虚拟机(jvm/pvm)运行的格式:
  • 开发环境:编译器 , 开发库
  • 项目构建工具:

  • c/c++:make
  • java :maven

程序包管理器:

  • 源代码程序-->可在目标可直接运行的二进制格式(二进制程序, 库文件,  配置文件 ,帮助文件) -->组织成为一个或有限几个"包"文件;
  • 安装, 升级 , 卸载, 查询, 校验
  •  包管理:
  • redhat:redhat package manager,rpm,"rpm";rpm package manager;
  • 源代码:name-VERSION.tar.gz
  • VERSION:major,minor.release
  • rpm 包命令格式:

  • name-VERSION-release.arch.rpm
  • VERSION:major, minor ,release
  • release:rpm包的发行号
  • release.os : 2.ei7.i386.rpm
  • archetecture:操做系统架构(  i386, x64(amd64) , ppc ,noarch)
  • redis-3.0.2.tar.gz--> redis-3.0.2-1.centos7.x64.rpm(包命名格式)
  • 拆包:主包,子包
  • 主包:name-VERSION-relesase.arch.rpm
  • 子包:name-function-VERSION-relesase.arch.rpm
  • function:devel, utils ,libs...
  • 包之间的依赖关系:

  • 例:x ,y ,z
  • x-->y ,z
  • y -->a , b, c
  • 前段工具:自动解决依赖关系;

  • yum:rhel系列系统上 rpm包管理器的前段工具;
  • apt-get( apt-cache):deb包管理的前段工具;
  • zypper:suse的rpm管理器嵌段工具;
  • dnf:Fedora 22+系统上rpm包管理器的前段工具;
  • 功能:将编译好的应用程序的各组成文件打包成一个或几个程序文件,从而更方便实现程序包的安装, 升级, 卸载和查询等管理操作;
  • 程序报的组成清单(每个程序包都单独实现)
  • 文件清单
  • 安装或卸载时运行的脚本
  • 数据库(公共)
  • 程序包的名称和版本;
  • 依赖关系;
  • 功能说明;
  • 安装生成的个文件的文件路径及校验码信息;
  • /var/lib/rpm/rpm数据库
  • 获取程序包的途径:

  • 1, 系统发行版的光盘或官方的文件服务器;(或镜像站点);
  • http://mirrors.aliyun.com,
  • http://mirrors,163.com
  • 2, 项目的官方站点
  • 3,第三方组织:EPEL:

Centos系统上rpm命令管理程序;

  • 安装 ,升级,卸载,查询和校验,数据库维护
  • rmp: rpm [option][package_file]
  • 安装:-i --install
  • 升级: -U --update,-F --freshen
  • 卸载:-e --erase
  • 查询:-q --query
  • 校验:-V --verify
  •  数据库维护:--buiddb ,--initdo
  • 安装:
  • rpm {-i|--install} [install-options] PACKAGE_FILE ...
  • rpm -ivh PACKAGE _FILE
  • GENRAL OPTION
  • -v:version,详细信息
  • -vv:更详细信息
  • [install-option]:
  • -h:hash marks输出进度条;每个#表示2%的进度;
  • --test:测试安装,
  • --nodeps:忽略依赖关系
  • --replacepkgs:重新安装
  • --noscripts:不运行脚本
  • rpm可以自带脚本:
  •   四类:
  • preinstall:安装过程完成之后运行的脚本,%pre
  • postinstall:安装过程完成之后运行脚本,%post
  • preuninstall:卸载过程真正开始执行之前运行的脚本,%preun-nopreun
  • postuninstall:卸载过程完成之后运行的脚本,%potun,--nopostun
  • --nosignature:不检查包签名信息,不检查来源合法性,
  • --nodigest:不检查包的完整性信息;
  • 升级:

  • -U:升级或安装
  • - F:升级
  • rpm -Uvh package _file
  • rpm -Fvh package _file
  • --oldpackage:降级;
  • --force:强制升级;
  • 1,不要对内核做升级操作,Linux支持多内和版本并存,因此,直接安装新版本内核;
  •  2,如果某源程序包的配置文件安装曾被修改过,升级时,新本版本的程序提供的同一个配置文件不会覆盖原配置文件,而是把新版本的配置文件重命名(filename.epmenew)后提供;
  • 卸载:
  • rpm {-e|--erase} [--allmatches] [--justdb] [--nodeps] [--noscripts]
  • [--notriggers] [--test] PACKAGE_NAME ...
  • --ailmatches:卸载所有匹配指定名称的程序包的个版本;
  • -nodeps:hulue依赖关系
  • -test:测试卸载
  • 查询:

  • rpm {-q|--query} [select-options] [query-options]
  • package_name :查询指定的程序包是否已经安装 ,及版本
  • -a,--all:查看所有已经安装过的包;
  • -f :file:查询指定的文件由那个程序包安装生成;
  • -p --package PACKAGE_FILE:用于实现未安装的程序包进行查询
  • --whatprovides CAPABILITY  :查询指定的CAPANILITY由那个程序包提供
  • --whatrequires CAPABILITY:查询指定的CAPANILITY被那个包所依赖;[query-options]
  • --changelog:查看rpm包的changelog;
  • -l,list:程序安装生成的所有文件列表;
  • -i,info:程序包相关的信息,版本号,大小, 所属的包组,等;
  • -c,--cnfigfiles:查询指定的程序提供的配置文件;
  • -d --docfiles:查询指定的程序包提供的文档;
  • --provides :查询指定程序包提供的所有的capanility
  • -R:查询指定的程序包的依赖关系;
  • --scripts:查询程序包自带脚本信息
  • 用法:

  • -ql package ,   -qf:file,  -qc:package
  • -qd: package,  -qe packag,  -qp package
  • -qpl package_file, -qpi package _file
  • -qpc package_file
  • 校验:

  • rpm -V--verify[select-options][verify-options]
  • 包来源合法性验证和完整性验证:

  • 来源合法性验证:
  • 数字签名
  • 完整性验证:
  • 获取并导入信任的包制作者的密钥;
  • 对于Centos7发行版来说; rpm --import/etc/pki/rpm-gpg RPM-GPG-KEY-CentOS-7
  • 验证:

  • 1,安装此组织签名的程序时,会自动执行验证;
  • 2,手动验证 rpm -K  PACKAGE_FILE
  • 数据库重建:

  • rpm管理器数据库路径:/var/lib/rpm/
  • 查询操作:通过此处的数据库进行;
  • 获取帮助:

  • Centos6:man rpm
  • Centos7:man rpmdb
  • rpm {--initdb|--rebuilddb} [-v] [--dbpath DIRECTORY] [--root DIRECTORY]
  • --initdb:初始化数据库,当前无任何数据库可初始化创建一个新的;当前有时不执行任何操作;
  • --rebuildb:重新构建,通过读取当前系统上所有已经安装的程序包进行重新创建;

使用前端工具: yum ,dnf

  • YUM:yellow dog, yellowdog Upadate Modifer
  • yum repository:yum repo
  • 存储了众多rpm包,以及包的相关的元数据文件(放置于特定  目录下:repodata);
  • 文件服务器:

  • ftp://     http://   file://
  • yum客户端:

  •  配置文件:/etc/yum.cof :为仓库的指向提供公共配置
  • /etc/yum.repos.d/*.repo:为仓库的指向提供配置
  •   仓库定义:
  • [repositoryID]
  • name= xxx some name this repository
  • baseurl=url ://path/to/repository/
  • gpgcheck=1|0
  • 例:
  • [base]
  • name=base on 172.16.0.1
  • baseurl=http://172.16.0.1/cobbler/ks_mirror/Centos-6.8_x86_x64/gpgcheck=1
  • yum命令的使用

  • yum [options] [command] [package ...]
  • 显示仓库列表:

  • repolist [all|enabled|disabled] 显示程序包组\:
  • list
  • yum list [all | glob_exp1] [glob_exp2] [...]
  • yum list available [glob_exp1] [... ]
  • 安装程序包:
  • install package1 [package2] [...]
  • reinstall package1 [package2] [...(重新安装)
  • 检查升级包:
  • update [package1] [package2] [...]
  • downgrade package1 [package2] [...](降级)
  • 卸载程序包:
  • remove | erase package1 [package2] [...]
  • 查看程序包infomation简要信息
  • info [...]
  • 查看程序包提供的特性(可以是某个文件)是由那个程序包所提供的
  • provides | whatprovides feature1 [feature2] [...]
  • 清理本地缓存:
  • clean  [ packages | metadata | expire-cache | rpmdb | plugins |
  • 构建缓存:makecache
  • 搜索:

  • search string1 [string2] [...]
  • 以指定的关键字搜索程序包名summary信息
  • 查看指定包的所依赖的capabilities:
  • deplist package1 [package2] [...]
  • history查看yum事务历史:
  • history    [info|list|packages-list|packages-info|summary|addoninfo|redo|undo|rollback|new|sync|stats]

包组管理groupinstall:

  •  如何使用光盘当做本地yum仓库:
  • 1.挂载光盘只某目录:
  • 例如 /media/cdrom
  • mount -r /dev/cdrom /media/cdrom(挂载cd光盘)
  • 2.创建配置文件: 
  • [repositoryID]
  • name= xxx some name this repository
  • baseurl=url ://path/to/repository/
  • gpgcheck=1|0
  •  yum的命令选项:
  • --nogpgcheck:禁止进行gpg  check;
  • -y:自动回答"yes
  • -q:静默
  • --disablerepo=repoidglob:临时禁用此处hiding的repo
  • --nopiugins:禁用所有插件
  •  yum的repo配置文件中的可用的变量:
  • $releasever:当前0S的发行版本号:
  • $arch:平台
  • $basearch:基础平台:
  • %YUM0-YUM9

创建yum仓库:

  • createrrpo [options][directory]
  • 程序包编译安装:

  • testapp -VERSION-release.src.rpm-->安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后在安装;
  • 源代码组织格式:
  • 多文件:文件中的代码之间,很可能存在的跨文件依赖关系
  • C代码编译安装三步骤:
  • ./configgure:
  • 1.通过选项传递参数,指定启用特性,安装路径等;执行时会参考用户的指定用户的指定以及Makefile.in文件生成makefile;
  • 2.检查依赖到的外部环境:
  • make:

  • 根据makefile文件,构建应用程序;
  • make  install
  • 开发工具:
  • autoconf,生成configure脚本
  • automake:生成Makefile.in
  • 安装前查看INSTALL ,README
  • 开源程序源代码的获取:
  • 官方自建站点:
  • apache.org(ASF)
  • mariadb.org
  • 代码托管:
  • SourForge
  • Github.com
  • code.google.com
  • c/c++:gcc(GNU C Complier)     C编译器
  • 编译C源代码:
  • 前提:提供开发工具及开发环境
  • 开发工具:make ,gcc等
  • 开发环境: 开发库,头文件
  • glibc:标准库
  • 通过"包组"提供开发组件
  • Cents6 :"Devrlopment Tools"," Server Platform Development"
  • 第一步: configure脚本
  • 选项: 指定安装位置, 指定启用的特性
  • --help:获取其支持使用的选项
  • 选项分类
  • 安装路径设定:
  • --prefix=/path/to/somewhere:指定默认安装位置,默认/usr/lolcor
  • --sysyconfig=/path/to/somewhere:配置文件安装位置
  • System types:
  • Optional Features:可选特性
  • --disable -FEATURE
  • Optional Pcakager:可选包
  • --with -PAKCAGE[=ARG]
  • netstat -tan
  •  第二步:make
  •  第三步:make install
  • 安装后的配置:

  • 1.导出二进制程序目录至PATH环境变量中:
  • 编辑文件/etc/profile.d/NAME.sh
  • export PATH=/PATH/TO/BIN:$PATH
  • 2.导出库文件路径:
  • 编辑/etc/so.conf.d/NAME.conf
  • 添加新的库文件所在目录至此文件中;
  • 让系统重新生成缓存:
  • 1dconfig[-v]
  • 3,导出头文件
  • 基于链接的方式实现:
  • in -sv
  • 4导出帮助手册
  • 编辑/etc/man.config文件
  • 添加一个MANPATH

Linux磁盘及基础管理

  • Disks:提供持久存储数据功能       
  • 磁盘:机械硬盘,固态;  
  • 机械硬盘(HDD):Hard  Disk Drive.     
  •      机械硬盘机构:
  • head : 磁头
  • track:磁道
  • sector:扇区
  • cylinder:柱面
  • 磁盘接口类型:
  • IDE:并口 133MB/s
  • SCSI:并口
  • SATA:串口 6gbps
  • SAS: 串口  6gbps
  • USB:串口,480MB/s       并口:同一线缆可以接多块设备;
  • 设备类型:
  • Linux的哲学思想:一切皆文件:
  • 块设备(block)随机访问,数据交换单位是块‘
  • 字符设备:char线性访问,数据交换单位是“字符”;
  • 设备文件:FHS磁盘的设备
  • /dev/ DEV_FILE
  • 设备文件:关联至设备的驱动程序;进而能够跟与之对应的硬件设备进行IO通信
  • 设备编号:
  • major:主设备号,区分设备类型;用于表明设备所需要的驱动程序
  • minor:次设备号,区分同类型下的不同的设备;是特定设备的访问入口;
  • mknod命令;
  • mknod - make block or character special files
  • mknod [OPTION]... NAME TYPE [MAJOR MINOR]
  • -m MODE:创建后的设备文件的访问权限;
  • 设备文件名:ICANN
  •  磁盘:
  • IDE:/dev/sd
  • 例:/dev/sda,/dev/sdb
  • SCSI,SATA,USB,SAS,:/dev/sd【a-z】
  • 分区:
  •          /dev/sda#:
  • /dev/ada1...
  • 引用设备的方式:
  • 设备文件名, 卷标 , UUID;

磁盘分区:MBR,GPT

  • 分区划分基于柱面
  • MBR: Master Boot Record(使用32位表示扇区数,分区不超过2T)
  • 0磁道0扇区:512bytes
  • 446bytes:bootloader,程序,引导启动操作系统程序:
  • 64bytes:分区表
  • 4主分区;3主分区1扩展, n逻辑分区
  • 主分区和扩展分区的标识:1-4
  • 逻辑分区:5+

创建及管理分区:

分区创建工具; parted ,fdisk‘gdisk:

  • fdisk :创建MBR分区
  • gdisk :创建GPT分区
  • lsblk:列出设备块
  • 创建分区使用:
  • fdisk提供了一个交互式接口来管理分区,他有许多子命令,分别用于不同的管理功能;
  • 所有的操作均在内存中完成,没有直接同步到磁盘; 直到使用w命令保存至磁盘之上;
  • fdisk命令:fdisk -l [-u] [device...]
  • fdisk-l [-u ][ device...]
  • 常用命令:
  • n: 创建新分区
  • d: 删除已有分区
  • t:修改分区类型
  • l:查看所有已经ID
  • w:保存并退出
  • q:不保存并退出
  • m:查看帮助信息
  • GPT:GUID(Globals Unique Identifiers)  partitiontable支持128个分区,使用64位,支持8Z(512Byte/blok)64Z (4096bYyte/blok) 使用128UUID(Universally Unique Identifier)表示次磁盘和分区GPT分区表自动备份再投尾两份,并有CRC校验位UEFI(统一扩展固件接口)硬件支持GPT,使用操作系统启动   在已经分区并且已经挂载其中某个分区的磁盘设备上创建的新分区,内核可能在常见文成后无法直接识别;
  • 查看:
  •         cat /proc/partitions
  • centos6通知内核重新读取硬盘分区表(刷新操作)
  • 新增分区:
  • partx-a /dev/DEVICE
  • 删除分区:
  • patx -d --nr -M-N /dev/DEVICE
  • centos7使用: partprobe
  • parted: pared的操作都是实时生效,
  • 用法: parted[option]...设备,命令,参数...
时间: 2024-10-29 04:45:22

Linux程序包管理与初识磁盘的相关文章

Linux程序包管理

Linux程序包管理 RPM包基础 RPM YUM 编译安装 概述 Linux上的程序包管理,是我们的必备技能,本文将从三个视角:rpm.yum.源码编译来浅析Linux的程序包管理.首先,我们来看下本文的主要内容: - 程序包的命名- RPM: 程序包管理器    安装.卸载.升级.查询.校验.数据库维护      - YUM: RPM的前端程序    yum的配置文件     yum的常规操作:升级.检查.卸载.查看.包组管理     使用光盘当作本地yum仓库     yum的命令行选项及

Linux程序包管理及yum安装管理

Linux程序包管理: API:ApplicationProgramming Interface   应用编程接口 POSIX:Portable OS    遵循本协议的程序均可在不同系统间移植 程序编写完成后,执行所要经过的处理步骤: 程序源代码 --> 预处理 --> 编译 --> 汇编 --> 链接 静态编译: 共享编译:直接调用.so共享对象实现 ABI:ApplicationBinary Interface  应用二进制接口 Windows与Linux所支持的可执行二进制

Linux程序包管理工具简介

一.Linux程序包管理器-RPM RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件.Linux 安装时,除了几个核心模块以外,其余几乎所有的模块均通过RPM 完成安装.RPM 有五种操作模式,分别为:安装.卸载.升级.查询和验证. 1.RPM 安装操作 命令: rpm -i 需要安装的包文件名 例: rpm -i example.rpm 安装 example.rpm 包 rpm -iv example.rpm 安装

Linux程序包管理总结

Linux程序包管理 相比于Windows系统,Linux的程序包的管理就没有那么简单了,当然在Linux系统中也有像Windows系统中EXE或者MSI安装包一样的安装包文件,可以直接实现进行程序包安装,但即是这样的程序包的安装也要比Windows复杂多了,当然,大家不要被我这两句话给唬到了,当你学过这课后,你会发现Linux的程序包管理其实也很简单的,同样你也会发现Linux的程序包管理比Windows的好玩儿多了. Linux中的程序包格式: .deb  源于debian系统的安装包格式

linux程序包管理rpm,yum和编译安装以及冒泡排序练习

linux程序包管理: API:Application Programming Interface POSIX:Portable OS 程序源代码--> 预处理--> 编译--> 汇编--> 链接 静态编译: 共享编译:.so ABI:Application Binary Interface Windows与Linux不兼容 ELF(Executable and Linkable Format) PE(Portable Executable) 库级别的虚拟化: Linux: WIN

Linux程序包管理之rpm包管理

Linux程序包管理 软件包管理 功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装.升级.卸载.查询.校验.数据库维护. API:Application ProgramInterface应用程序接口: ABI:Application BinaryInterface应用二进制接口: Unix-like和linux在ABI层次是相同的 linux程序包:ELF格式: 但是与Windows相差甚远 windows程序包:exe,msi格式: API层次兼容不一定A

Linux程序包管理:RPM和YUM

Linux程序包管理:RPM和YUM   就像Window一样,我们安装了windows系统如果没有相应的应用软件,如OFFICE,IE,等各种软件,用户是无法使用计算机,linux 完成各种应用功能,也需要各种应用程序,所以程序包的管理就非常必要. Linux平台的内核功能:进程管理.内存管理.网络协议栈.驱动程序....             应用程序:              早期的linux程序包的组成部分:                二进制程序:/bin, /sbin,/ /u

Linux 程序包管理 rpm yum dnf

Linux程序包管理: 包管理器功能:打包,包管理(安装,升级,卸载,查询,校验) 目前Linux中最常见有两种常用工具 deb:debian Linux使用 包括ubuntu rpm:Redhat Package Manager ,Centos等在使用 程序包的组成: 二进制程序:/bin,  /sbin,  /usr/bin, /usr/sbin 库文件: /lib64, /usr/64 配置文件:/etc 帮助文件:manual, info 包管理器: 打包:将源文件,一个一个单一的归档文

[Linux程序包管理之RPM及YUM]

Linux程序包管理之RPM及YUM 一.RPM和YUM简介 RPM,全称RPM Package Manager,是由Red Hat推出的软件包管理系统,现在在各个发行版普遍使用. RPM包管理器,将编译好的程序打包成一个文件或有限的几个文件,可用于实现便捷地安装.卸载.升级.查询.校验等程序管理:通常用与RHEL,红帽衍生系统,如CenOS等系统,用来实现对Linux程序包进行快捷管理. RPM包命名格式: Yum,全称Yellow dog Updater, Modified , 由Duke