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

软件包管理

一、软件包管理简介

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适合的硬件平台
rpmrpm包扩展名

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镜像站点,可以注释掉
baseurlyum源服务器地址,默认是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>

```shell
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
mv CentOS-Debuginfo repo CentOs-Debuginfo.repo.bak
mv CentOS-Valut.repo CentOS-Value.repo.bak

3)修改光盘yum源文件

vim CentOS-Media.repo
name=CentOS-$releasever -Media
baseurl=file:///mnt/cdrom
#地址为光盘挂载地址
#注释这两个不存在的地址
gpgcheck=1
enabled=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、安装准备

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安装过程

文件系统管理

一、分区和文件系统

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.sh
chmod 755 hello.sh
./hello.sh
mount -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 /disk1
mount /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 #重新挂载,看是否报错
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值