软件包管理和磁盘管理

软件运行和编译

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)
上一篇 2017-04-24 19:48
下一篇 2017-04-24 20:25

相关推荐

  • 压缩及归档工具

    常用的有这些: compress/uncompress: .Z gzip/gunzip: .gz bzip2/bunzip2: .bz2 xz/unxz: .xz zip/unzip tar, cpio 现在分别介绍他们的用法: 1、gzip/gunzip/zcat  .gz           &…

    系统运维 2016-09-19
  • PS进程命令常用选项参数详解

    PS命令是什么 ps命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果想要不断更新查看这个状态,可以配合watch命令或使用top命令。ps命令支持三种使用的语法格式 UNIX 风格:选项可以组合在一起,并且选项前必须有”-“连字符。 BSD 风格 :选项可以组合在一起,但是选项前不能有”-&#822…

    2017-07-09
  • 系统自动化安装和SELinux

    一、知识整理 1、anaconda系统安装程序:默认图形启动; 使用光盘启动,在选择模式界面tab键在后面增加text或按下ESC键,输入lnux text进入字符界面安装。 2、创建kickstart文件: 直接手动编辑:依据模板修改,/root目录下的anaconda.cfg 使用创建工具创建:system-config-kickstart,图形化工具:…

    Linux干货 2016-09-26
  • 【招聘】北京/互联网/运维工程师/7-15K/双休,五险一金

    岗位职责:   1、负责服务器的规划、调试优化、日常监控、故障处理、数据备份、日志分析等工作;   2、参与运维流程制定,确保任何突发情况都能高效响应;  3、负责服务器部署,对服务器构架和网络进行优化和改进;  4、负责运维相关数据的收集、分析和总结;  5、负责技术运维相关的文档、手册…

    Linux干货 2016-04-16
  • 网络管理、进程管理、计划任务及启动流程

          网络管理 一.网卡模块操作步骤: 查询网卡模块类型:ethtool  -i  eth1 查询网卡模块lsmod |grep e1000 删除网卡模块rmmod e1000  或者modprobe  -r  e1000 添加网卡模块 modprobe e1000 删除模…

    Linux干货 2016-09-08
  • 系统管理之磁盘管理(二)磁盘配额,RAID,LVM

    上篇博文给大家介绍了磁盘和文件系统的基础知识,也是最基本的使用.在实际生产环境中,对于磁盘的使用,要求稳定,灵活,那么下面给大家分享下磁盘的高级用法.磁盘配额,RAID,LVM等相关知识. 1.磁盘配额2.磁盘RAID3.LVM 一.磁盘配额 1.概述: • 在内核中执行 • 以文件系统为单位启用 • 对不同组或者用户的策略不同…

    Linux干货 2016-09-05

评论列表(1条)

  • renjin
    renjin 2017-04-28 11:25

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