Linux学习(五)软件包和文件系统管理

来源:互联网 发布:曾是编程员的音乐人 编辑:程序博客网 时间:2024/05/20 11:27

软件包管理

一、软件包管理简介

1、软件包分类

  • 源码包
    • 脚本安装包
  • 二进制包(RPM包、系统默认包)

2、源码包
源码包优点:

  • 开源,可以修改源代码
  • 可以自由选择所需的功能
  • 软件是编译安装,所以更加适合自己的系统,更加稳定也更高效
  • 卸载方便

源码包的缺点:

  • 安装过程步骤较多,尤其安装较大的软件集合时,容易出现拼写错误
  • 编译过程时间较长,安装比二进制安装时间长
  • 因为是编译安装,安装过程中一旦报错新手很难解决

3、RPM包
二进制包的优点:

  • 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
  • 安装速度比源码包安装的快

二进制包缺点:

  • 经过编译,不再可以看到源代码
  • 功能选择不如源码包灵活
  • 依赖性

二、RPM包管理-rpm命令管理

2.1、命名与依赖
1、RPM包命名规则
包全名,如:httpd-2.2.15-15.e16.centos.1.i686.rpm

字符 含义 httpd 软件包名 2.2.15 软件版本 15 软件发布的次数 e16.centos 适合的Linux平台 ie86 适合的硬件平台 rpm rpm包扩展名

2、RPM包的依赖性

  • 树形依赖: a->b->c
  • 环形依赖: a->b->c->a
  • 模块依赖: 模板依赖查询网站:http://www.rpmfind.net

2.2、RPM包安装、升级与卸载
1、包全名与包名

  • 包全名:操作的包是没有安装的软件包时,使用包全名。要注意路径
  • 包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm中的数据库

2、RPM包安装
rpm -ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
–nodeps 不检测依赖性

3、RPM包升级
rpm -Uvh 包全名
选项:-U(upgrade)升级

4、卸载
rpm -e 包名
选项:
-e(erase) 卸载
–nodeps 不检查依赖性

2.3、查询rpm包
查询是否安装

rpm -q 包名# 查询包是否安装选项: -q 查询(query)rpm -qa #查询所有已经安装的RPM包

查询软件包详情信息
rpm -qi 包名
选项:
-i 查询软件信息(information)
-p 查询未安装包信息(package)

查询包中文件安装位置
rpm -ql 包名
选项:
-l 列表(list)
-p 查询未安装包信息(package)

查询系统文件属于哪个RPM包
rpm -qf 系统文件名
选项: -f 查询系统文件属于哪个软件包(file)

查询软件包的依赖性
rpm -qR 包名
选项:
-R 查询软件包的依赖性(requires)
-p 查询未安装包信息(package)

2.4、RPM包校验和文件提取
1、RPM包校验
rpm -V 已安装的包名
选项: -V 校验指定RPM包中的文件(verify)

验证内容中的8个信息的具体内容如下:

  • S 文件大小是否改变
  • M 文件的类型或文件的权限(rwx)是否被改变
  • 5 文件MD5校验和是否改变(可以看成文件内容是否改变)
  • D 设备从代码是否改变
  • L 文件路径是否改变
  • U 文件的属主(所有者)是否改变
  • G 文件的属主(所有者)是否改变
  • T 文件的修改时间是否改变

文件类型

  • c 配置文件(config file)
  • d 普通文档(documentation)
  • g “鬼”文件(ghost file),很少见,该文件不应该被这个RPM包包含
  • l 授权文件(license file)
  • r 描述文件(read me)

2、RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径

rpm2cpio # 将rpm包转换成cpio格式的命令cpio #是一个标准工具,它用于创建软件档案文件和档案文件中提取文件

cpio选项 < [文件|设备]
选项:
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程

示例:

#提取RPM包中ls命令到当前目录的/bin/ls下rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-37.el6.i686.rpm | >cpio -idv ./bin/ls

三、RPM包管理-yum在线管理

3.1、IP地址配置和网络yum源

setup #使用setup工具vim /etc/sysconfig/network-scripts/ifcfg-eth0 # 把ONBOOT="no"该为ONBOOT="yes",启动网卡service network restart #重启网络服务

2、网络yum源
vim /etc/yum.repos.d/CentOS-Base.repo

字符 说明 [base] 容器名称,一定要放在[]中 name 容器说明,可以随便写 mirrorlist 镜像站点,可以注释掉 baseurl yum源服务器地址,默认是CentOS官方的yum源服务器,可以用,也可以改yum源地址 enabled 此容器是否生效,如果不写或写成enable=1都是生效,写成enable=0是不生效 gpgcheck 如果是1,指RPM的数字证书生效,如果是0则不生效 gpgkey 数字证书的公钥文件保存位置,不用修改

3.2、yum命令
1、常用yum命令
1)查询

yum list #查询所有可用软件包列表yum search 关键字 #搜索服务器上所有和关键字相关的包

2)安装
yum -y install 包名
选项:
install 安装
-y 自动回答yes

3)升级
yum -y update 包名
选项:
update 升级
-y 自动回答yes

4)卸载
yum -y remove 包名
选项:
remove 卸载
-y 自动回答yes

2、yum软件组管理

yum grouplist #列出所有可用的软件组列表# 安装指定软件组,组名可以由grouplist查询出来yum groupinstall 软件组名#卸载指定软件组yum groupremove 软件组名

3.3、光盘yum源搭建
1)挂载光盘

mount /dev/cdrom /mnt/cdrom/````2)让网络yum源文件失效<div class="se-preview-section-delimiter"></div>```shellcd /etc/yum.repos.d/mv CentOS-Base.repo CentOS-Base.repo.bakmv CentOS-Debuginfo repo CentOs-Debuginfo.repo.bakmv CentOS-Valut.repo CentOS-Value.repo.bak

3)修改光盘yum源文件

vim CentOS-Media.reponame=CentOS-$releasever -Mediabaseurl=file:///mnt/cdrom#地址为光盘挂载地址#注释这两个不存在的地址gpgcheck=1enabled=1#把enabled=0改为enabled=1,让这个yum源配置文件生效gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

四、源码包管理

4.1、源码包和RPM包的区别
RPM包安装位置

路径 RPM包默认安装路径 /etc/ 配置文件安装目录 /usr/bin 可执行的命令安装目录 /usr/lib 程序所使用的函数库保存位置 /usr/share/doc/ 基本的软件使用手册保存位置 /usr/share/man/ 帮助文件保存位置

源码包安装位置
安装在指定位置当中,一般是/usr/local/软件名/

安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管理命令(service)来管理,如:RPM包安装的apache的启动方法是:

/etc/rc.d/init.d/httpd start #绝对路径启动service httpd start     #rehat专有

源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理。

4.2、源码包安装过程
1、安装准备

  • 安装C语言编译器(gcc)
  • 下载源码包http://mirror.bit.edu.cn/apache/httpd/

2、安装注意事项

  • 源代码保存位置:/usr/local/src
  • 软件安装位置:/usr/local/
  • 如果确定安装过程报错:
    • 安装过程停止
    • 并出现error、warning或no的提示

3、源码包安装过程

  • 下载源码包
  • 解压缩下载的源码包
  • 进入解压缩目录
  • ./configure 软件配置与检查
    • 定义需要的功能选项。
    • 检测系统环境是否符合安装要求。
    • 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。
  • make 编译
    • make clean
  • make install 编译安装

4、源码包的卸载
不需要卸载命令,直接删除安装目录即可,不会遗留任何垃圾文件。

五、脚本安装包与软件包选择

1、脚本安装包

  • 脚本安装包并不是独立的软件包类型,常见安装的是源码包。
  • 是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。
  • 类似于Windows下软件的安装方式。

2、Webmin的作用

  • Webmin是一个基于Web的Linux系统管理界面。可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务。

3、Webmin安装过程

  • 下载软件,http://sourceforge.net/projects/webadmin/files/webmin
  • 解压缩,并进入解压缩目录
  • 执行安装脚本

文件系统管理

一、分区和文件系统

1.1、分区类型

  • 主分区:总共最多只能分4个
  • 扩展分区:只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个。但是扩展分区不能存储数据和格式化,必须再划分为逻辑分区才能使用。
  • 逻辑分区:逻辑分区是扩展分区中划分的,如果是IDE硬盘,Linux最多支持59个逻辑分区,如果是SCSI硬盘Linux最多支持11个逻辑分区
名称 分区的设备文件名 主分区1 /dev/sda1 主分区2 /dev/sda2 主分区3 /dev/sda3 扩展分区 /dev/sda4 逻辑分区1 /dev/sda5 逻辑分区2 /dev/sda6 逻辑分区3 /dev/sda7
名称 分区的设备文件名 主分区1 /dev/sda1 扩展分区 /dev/sda2 逻辑分区1 /dev/sda5 逻辑分区2 /dev/sda6 逻辑分区3 /dev/sda7

2、文件系统

  • ext2:是ext文件系统的升级版本,Red Hat Linux7.2版本以前的系统默认都是ext2文件系统。1993年发布,最大支持16TB的分区和最大2TB的文件。
  • ext3:ext3文件系统是ext2文件系统的升级版本,最大的区别就是带日志功能,以在系统突然停止时提高文件系统的可靠性。支持最大16TB的分区和最大2TB的文件。
  • ext4:它是ext3文件系统的升级版。ext4在性能、伸缩性和可靠性方面进行了大量改进。EXT4的变化比较大,比如向下兼容EXT3、最大1EB(1EB=1024PB=1024*1024TB)文件系统和16TB文件、无限数量子目录、Extents连续数据块概念、多块分配、延迟分配、持久预分配、快速FSCK、日志校验、无日志模式、在线碎片整理、inode增强、默认启用barrier等。是CentOS6.3的默认文件系统。

二、文件系统常用命令

2.1.1、文件系统查看命令df
df [选项][挂载点]
选项:
-a 显示所有的文件系统信息,包括特殊文件系统,比如/proc、/sysfs
-h 使用习惯单位显示容量,如KB,MB或GB等
-T 显示文件系统类型
-m 以MB为单位显示容量
-k 以KB为单位显示容量,默认是以KB为单位

2.1.2、统计目录或文件大小
du [选项][目录或文件名]
选项:
-a 显示每个子文件的磁盘占用量,默认只统计子目录的磁盘占用量
-h 使用习惯单位显示磁盘占用量,如KB,MB或GB等
-s 统计总占用量,而不列出子目录和子文件的占用量

du命令和df命令的区别

  • df命令是从文件系统考虑的,不光要考虑文件占用的空间,还要统计被命令或程序占用的空间(最常见的就是文件已经删除,但是程序并没有释放空间)
  • du命令是面向文件的,只会计算文件或目录占用的空间

2.1.3、文件系统修复命令fsck
fsck [选项] 分区设备文件名
选项:
-a:不用显示用户提示,自动修复文件系统
-y:自动修复,和-a作用一致,不过有些文件系统只支持-y

2.1.4、显示磁盘状态命令dumpe2fs
dumpe2fs 分区设备文件名

2.2.1、挂载命令
查询与自动挂载

mount [-l]# 查询系统中已经挂载的设备,-l会显示卷标名称mount -a#依据配置文件/etc/fstab的内容,自动挂载

2.2.2挂载命令格式

mount [-t 文件系统][-L卷标名][-o 特殊选项] 设备文件名 挂载点选项:-t  文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统-L 卷标名: 挂载指定卷标的分区,而不是安装设备文件名挂载-o 特殊选项:  可以指定挂载的额外选项
参数 说明 atime/noatime 更新访问时间/不更新访问时间。访问分区文件时,是否更新文件的访问时间,默认为更新 async/sync 异步/同步,默认时异步 auto/noauto 自动/手动,mount -a 命令执行时,是否会自动安装/etc/fatab文件内容挂载,默认为自动 default 定义默认值,相当于rw,suid,dev,exec,auto,nouser,async这七个选项 exec/moexec 执行/不执行,设定是否允许在文件系统中执行可执行文件,默认时exec允许 remount 重新挂载已经挂载的文件系统,一般用于指定修改特殊权限 wr/ro 读写/只读,文件系统挂载时,一般用于指定修改特殊权限 suid/nosuid 具有/不具有SUID权限,设定文件系统是否具有SUID和SGID的权限,默认是具有 user/nouser 允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂载分区 usrquota 写入代表文件系统支持用户磁盘配额,默认不支持 grpquota 写入代表文件系统支持组磁盘配额,默认不支持
mount -o remount,noexec /home#重新挂载/boot分区,并使用noexec权限cd /home    vim hello.shchmod 755 hello.sh./hello.shmount -o remount,exec /home#实验完,改回,不要影响系统启动

2.3挂载光盘与U盘
2.3.1、挂载光盘

mkdir /mnt/cdrom    #建立挂载点mount -t iso9660 /dev/cdrom /mnt/cdrom/ #挂载光盘mount /dev/sr0/mnt/cdrom #与上名命令功能相同, /dev/cdrom是/dev/sr0的软链接

2.3.2卸载命令

umount 设备文件名或挂载点umount /mnt/cdrom 

2.3.3挂载U盘

fdisk -l #查看U盘设备文件名mount -t vfat /dev/sdb1/mnt/usb #注意:Linux默认是不支持NTFS文件系统的

2.3.4、卸载U盘

umount /dev/sdb1 #sdb1是通过fdisk -l查看到的,具体的要查看

2.4、支持NTFS文件系统
2.4.1、下载NTFS-3G插件
http://www.tuxera.com/community/stfs-3g-download/
2.4.2、安装NTFS-3G

tar -zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz #解压cd ntfs-3g_ntfsprogs-2013.1.13 #进入解压目录./configure #编译器准备,没有指定安装目录,安装到默认位置中make    #编译make install #编译安装

2.4.3、使用

mount -t ntfs-3g #分区设备文件名 挂载点

三、fdisk分区

3.1、fdisk命令分区过程
使用fdisk命令分区:fdisk /dev/sdb

命令 说明 a 设置可引导标记 b 编辑bsd磁盘标签 c 设置DOS操作系统兼容标记 d 删除一个分区 l 显示已知的文件系统类型。82为Linux swap分区,83为Linux分区 m 显示帮助菜单 n 新建分区 o 建立空白DOS分区表 p 显示分区列表 q 不保存退出 s 新建空白SUN磁盘标签 t 改变一个分区的系统ID u 改变显示记录单位 v 验证分区表 w 保存退出 x 附加功能

p:主分区,e:扩展分区,l:逻辑分区

重新读取分区表信息:partprobe

格式化分区: mkfs -t ext4 /dev/sdb1

创建挂载点并挂载

mkdir /disk1mount /dev/sdb1 /disk1/

3.2、分区自动挂载与fstab文件修复
1、/etc/fstab文件

  • 第一字段:分区设备文件名或UUID(硬盘通用唯一识别码)
  • 第二字段:挂载点
  • 第三字段:文件系统名称
  • 第四字段:挂载参数
  • 第五字段:指定分区是否被dump备份,0代表不备份,1代表每天备份,2代表不定期备份
  • 第六字段:指定分区是否被fsck检测,0代表不检测,其它数字代表检测的优先级,那么当然1的优先级比2高

2、分区自动挂载

vim /etc/fatab#在文件中加入以下内容/dev/sdb1       /disk1      ext4    defaults        1 2

3、/etc/fstab文件修复

mount -o remount,rw/

四、分配swap分区

4.1、free命令
free,查看内存与swap分区使用状况

  • cached(缓存):指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程。
  • buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定程度再集中写入硬盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程。

2、新建swap分区

[root@localhost ~]# fdisk /dev/sdb #给swap重新划分一个分区#记得把分区ID改为82[root@localhost ~]# partprobe #重新分配,如果不行进行重启

3、格式化

mkswap /dev/sdb6 #格式化swap分区

4、加入swap分区

[root@localhost ~]# swapon /dev/sdb6 #加入swap分区[root@localhost ~]# swapoff /dev/sdb6 #取消分区

5、swap分区开机自动挂载

vim /etc/fstab#在文件中写入以下配置/dev/sdb6      swap          swap    defaults        0 0#mount -a #重新挂载,看是否报错
原创粉丝点击