软件包管理和磁盘管理

软件运行和编译

ABI :Application Binary Interface 应用程序二进制接口

    WindowsLinux不兼容

     PE格式   ELF格式

库级别的虚拟化:

      LinuxWINE

      WindowsCywin

APIApplication Programming应用程序的开发接口

     POSIX 通用

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

静态编译:.a

    libxxx.a

    把程序对应的依赖库复制一份到包

    升级难,需要重新编译

    占用空间较多,迁移容易       

动态编译:.so

    只把依赖加做一个动态链接

    libxxx.so

    占用空间较少,升级方便

 

包管理器

二进制应用程序的组成部分:

   二进制文件、库文件、配置文件、帮助文件

程序包管理器:

   debiandeb文件、dpkg包管理器

   redhatrpm文件、rpm包管理器

    rpmRedhat Package Manager

          RPM Package Manager

包命名

源代码:name-VERSION.tar.gz|bz2|xz

rpm包命名方式:

   name-VERSION-release.arch.rpm

    例:bash-4.2.46-19.e17.x86­_64.rpm

常见的arch

   x86 i386 i486 i586 i686

   x86_64

   noarch

包:分类和拆包

   Application-VERSION-ARCH.rpm:主包

   Application-devel-VERSION-ARCH.rmp 开发子包

   Application-utils-VERSION-ARHC.rpm 其他子包

  Application-libs-VERSION-ARHC.rpm 其他子包

包之间:可能依赖,甚至循环依赖

解决依赖包管理工具:

  yumrpm包管理器的前端工具

  apt-getdeb包管理器前端工具

  zyppersuse上的rpm前段管理工具

  dnfFedora 18+ rpm包管理器前端管理工具

 

库文件

查看二进制程序所依赖的库文件

  ldd/PATH/TO/BINARY_FILE

管理及查看本机装载的库文件

  idconfig

  /sbin/ldconfig -p :显示本机已经缓存的所有可用库文件名及文件路径映射关系

  配置文件:/etc/ld.so.conf,/etc/ld.so.conf.d/*.conf

  缓存文件:/etc/ld.so.cache

 

包管理器

程序包管理器:

     功能:将编译好的应用程序的各组文件打包一个或几个程序包文件,从而方便快捷的实现程序包的安装、卸载、查询、升级、和校验等管理操作

1、包文件组成(每个包独有)

   RPM包内的文件

   RPM的元数据,如名称,版本,依赖性,描述等安装或卸载时运行的脚本

2、数据库(公共):/var/lib/rpm

   程序包名称及版本

   依赖关系

   功能说明

   包安装后生成的各文件路径及校验码信息

 

程序包的来源

管理程序包的方式:

  使用包管理器:rpm

  使用前端工具:yumdnf

获取程序包的途径:

 1.系统发版的光盘或官方的服务器:

       CentOS镜像:

        https://www.centos.org/download/

        http://mirrors.aliyun.com

        http://mirrors.sohu.com

        http://mirrors.163.com

 2.项目官方站点

 3.第三方组织

   Fedora-EPEL

 Rpmforge :RHEL推荐,包很全

 搜索引擎:

          http://pkgs.org

          http://rpmfind.net

          http://rpm.pbone.net

          http://sourceforge.net/

 4.自己制作

 

rpm包管理

CentOS系统上使用rpm命令管理程序包:

     安装、卸载、升级、查询、校验、数据库维护

     安装:

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

           -vverbose

           -vv

           -h:显示执行进度

     rpm -ivh 常用

     [install-options]

           –test:测试安装

           –nodeps:忽略依赖关系

           –replacepkgs| replacefiles 覆盖安装 | 替换安装

           –nosignature:不检查数字签名

           –nodigest:不检查包完整性

           –noscripts:不执行程序包脚本

 

rpm包升级

rpm -U:安装有旧版本程序包,则“升级”,如果不存在旧版本程序包,则“安装”

rpm -F:安装有旧版本程序包,则“升级”,如果不存在旧版本程序包,则不执行升级操作

   –oldpackage:降级

   –force:强制安装

包查询

rpm2cpio 包文件|cpio itv 预览包内文件

rpm2cpio 包文件|cpio -id .conf”释放包内文件

rpm -a 查询所有包

    -f 查看指定的文件由哪个程序包安装shengc

    -p 针对未安装的程序包文件做查询操作

    –changelog 查询rpm包的changelog

    -c 查询程序的配置文件

    -d 查询程序的文档

    -i information

    -l 查看指定的程序包安装后生成的所有文件

    –scripts 程序包自带的脚本

    -R 查询指定的程序包所依赖的CAPABILITY

 

包校验

rpm -V 看是否更改过

     S 大小

     M 文件类型

     5 哈希值

     D 设备的主要和次要号码

     L 链接

     U 所有者

     G 所属组

     T m时间

数据库:/var/lib/rpm

yum

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

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

     文件服务器:

             ftp://

             http://

             file://

yum配置文件

   /etc/yum.conf:为所有仓库提供公共配置

   /etc/yum.repos.d/*.repo:为仓库的指向提供配置

   仓库指向的定义:

              [仓库名称]

              baseurl=地址

              gpgcheck={1|0}

              enabled={1|0}      

    常用的几项

yum

阿里云repo文件:

    http://mirrors.aliyun.com/repo/

CentOS系统yum

    阿里云:

    http://mirrors.aliyun.com/centos/$releasever/os/x86_64/

    教学环境:

    http://172.16.0.1/cobbler/ks_mirror/$releasever/

Epelyum源:

    阿里云:

    http://mirrors.aliyun.com/epel/$releasever/x86_64

    教学环境:

    http://172.16.0.1/cobbler/ks_mirror/$releasever/x86_64/

yum命令

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

  yum list 显示程序包

  yum install 安装程序包

  yum reinstall 重新安装

  yum update 升级程序包

  yum downgrade 降级程序包

  yum check-update 检查升级

  yum remove 删除

  yum info 查看包的信息

  yum clean 清除缓存 /var/cache/yum/$basearch/$releasever缓存

  yum search 搜索指定相关的包

查看yum 事务历史:

  yum history

  yum history info 6 查看历史

  yum history undo 6 撤销

 

centos7实现光盘yum

1安装

yum install autofs

2现在启动

systemctl  start autofs

3开机启动

systemctl  enable autofs

4 cat /etc/yum.repos.d/base.repo

[centos7]

name=centos7 repo

baseurl=file:///misc/cd

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

 

实验:实现yum 网络仓库

1 安装网络服务ftp为例

yum install  vsftpd

2现在启动

systemctl  start vsftpd centos7

service vsftpd start   centos6

3开机启动

systemctl  enable vsftpd centos7

chkconfig vsftpd on  centos6

4 清除防火墙

iptables -F

systemctl  disable firewalld.service   centos7

chkconfig iptables off centos6

5复制rpm包文件到共享的网络目录

/var/ftp/pub/app/

6 创建yum metadata 生成repodata/

yum install createrepo

createrepo  /var/ftp/pub/app/

7 客户端配置

[app]

baseurl=ftp://192.168.33.128/pub/app/

gpgcheck=0

 

实验:在centos7 编译安装httpd2.4.25

1安装源码包

download 源码包

tar xvf  httpd-2.4.25.tar.bz2

2安装开发包组

yum groupinstall “Development tools”

3 cd /root/httpd-2.4.25

yum install apr-devel

yum install apr-util-devel

yum install pcre-devel

./configure –prefix=/app/httpd24 –sysconfdir=/etc/httpd24/

4  make

5 make install

6 软件使用

指定路径

cat /etc/profile.d/httpd24.sh

PATH=$PATH:/app/httpd24/bin

7 apachectl start|stop

netstat -tnl 查看端口

 

磁盘管理

机械硬盘结构:

软件包管理和磁盘管理

head:磁头

track:磁道

cylinder:柱面

sector:扇区,512bytes

 

分区:

两种分区方式:MBR,GPT

MBR: 主要分区  1-4

      扩展1-4

      逻辑 5-

      sector 512

软件包管理和磁盘管理

GPT:

软件包管理和磁盘管理

分区工具

  fdisk 创建MBR分区

  gdisk 创建GPT分区

  parted 高级分区操作

fdisk /dev/sdb

gdisk /dev/sdb 类似fdisk

fdisk -p 分区列表

      -t 更改分区类型

      -n 创建新分区

      -d 删除分区

      -w 保持并退出

      -q 不保存并退出

新加分区同步:partx -a /dev/..

删除分区同步:partx -d –nr M-N /dev/..

partprobe 同步磁盘

partde用法,实时生效

  parted /dev/sdb mklabel gpt|msdos 建分区

  parted /dev/sdb print 看分区

  parted /dev/sdb mkpart primary 11000M

  parted /dev/sdb rm 1 删除第一个分区

  parted -l 查看所有硬盘分区

 

文件系统

linux文件系统:ext2,ext3ext4xfsswap

日志型文件系统:ext3ext4xfs…

非日志型文件系统:ext2vfat

mkfs命令:

    mkfs.FS_TYPE /dev/DEVICE

         ext4

         xfs

         btrfs

         vfat

    mkfs       -L  设定卷标

blkid 查看块信息

blkid -U UUID 根据UUID来查找对应设备

findfs LABEL …根据卷标搜索

findfs UUID…根据UUID搜索

tune2fs -U UUID:修改UUID

uuidgen:取新的UUID

fsck -y :修复

 

挂载mount

挂载方法:moumt DEVICE MOUNT_POINT

mount -L:根据卷标挂载

mount -U:跟据UUID挂载

      -t:指明文件系统

      -n:隐藏挂载

      -B: 文件挂载文件

      -o remount:指定权限

cat /proc/mounts查看最全的挂载信息

findmnt MOUNT_POINT查看是否挂载

fuser -v …        查看访问文件的进程

fuser -km …       杀掉进程

umount … 取消挂载

mount -a 刷新挂载

 

swap 实现

1fdisk 分区

fdisk  sdc1 t 82

2 mkswap /dev/sdc1 -L swap2 格式化

3 vim /etc/fstab 写入vim

/dev/sdc1  swap swap pri=100 0 0

4生效 swapon -a启用

5 swapon -s 查看

删除swap分区

1 swapoff /dev/sdc1禁用

2 free

3 vim /etc/fstab

4 fdisk /dev/sd删除分区

 

文件swap

dd if=/dev/zero of=/swapfile bs=1Mcount=2048

mkswap /swapfile

vim /etc/fstab

swapon -a

删除swap file

swapoff /swapfile

 vim /etc/fstab

 rm -f /swapfile

原创文章,作者:yaobinbin,如若转载,请注明出处:http://www.178linux.com/74111

(0)
yaobinbinyaobinbin
上一篇 2017-04-24 19:48
下一篇 2017-04-24

相关推荐

  • 优云APM最佳实践: 诊断平安城市视频网性能问题

    前言: 平安城市已经是一个关系你我他的民生工程,但由于本身系统的复杂性,给运维工作带来了极大的挑战。如何保障摄像头在线率?如何在系统中找到视频系统故障的问题所在?在我们某一次项目经历中,优云APM在发现问题,定位故障等方面,起了很大作用,帮助我们顺利的定位到了系统的故障所在。 平安城市是一个特大型、综合性非常强的管理系统,不仅需要满足治安管理、城市管理、交通…

    Linux干货 2016-08-05
  • 正则表达式与扩展正则表达式

    基本正则表达式 字符匹配:.:匹配任意单个字符[]:匹配指定范围内的任意单个字符[^]:匹配指定范围外的任意单个字符[-]:匹配[]中指定范围内的任意一个字符,要写成递增POSIX字符类:[:digit:]:匹配任意一个数字字符[:lower:]:匹配小写字母[:upper:]:匹配大写字母[:alpha:]:匹配任意一个字母字符(包括大小写字母)[:aln…

    2017-09-10
  • 安装CentOS 6.9

    安装完VMvare,VMware可以运行虚拟机,虚拟机就相当于一台电脑,然后我们在这台电脑上安装Linux系统,我们这次介绍安装CentOS 6.9的过程 1.打开VMware,依照下图步骤安装     首先我们需要创建新的虚拟机,然后配置出适合自己物理机的虚拟机 2.点击典型类型安装     这里推荐使用典…

    2017-07-12
  • 笔记二、如何在VMWare WorkStations安装CentOS6.8

    一、准备工作     1.安装VMWare WorkStatrion     2.准备好CentOS 6.8 镜像包     http://www.centoscn.com/CentosSoft/iso/    CenO…

    Linux干货 2017-02-14
  • lvs 基本概念

    LVS(linux virtual machine) 的简写,是一个虚拟的服务器集群系统,主要用于4层负载均衡。 宗旨: 使用集群技术和Linux操作系统实现一个高性能、高可用的服务器. 很好的可伸缩性(Scalability) 很好的可靠性(Reliability),应该还是高可用吧 很好的可管理性(Manageability…

    Linux干货 2015-09-14
  • Keepalives+lvs实现高可用httpd的双主模型

    基础环境:Centos 7.3 最小化安装四台 关闭防火墙及selinux 简单原理: keepalived是以VRRP协议为实现基础的,VRRP全称VirtualRouter Redundancy Protocol,即虚拟路由冗余协议。 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个mas…

    2017-05-15

评论列表(1条)

  • renjin
    renjin 2017-04-28 11:25

    对linux下的软件包管理和磁盘管理进行了详细的介绍,内容写的很详细排版也很好,可以把实验的流程再加入进来,加油,加油!