菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
463
0

软件包

原创
05/13 14:22
阅读数 90658

linux包的类型
源码包:c语言写的源码,没有编译
二进制包(rpm包、系统默认包):编译后的可执行文件,一般厂商提供(数据库,qq等),看不到源码,后缀是 .rpm

rpm包两种安装方式: 手动安装、yum在线安装
命令规则举例:
httpd-2.2.15-15.el6.centos.1.i686.rpm

httpd: 软件包名
2.2.15: 软件版本
15: 软件发布的次数
el6.centos: 适合的linux平台
i686: 适合的硬件平台
rpm: rpm包扩展名

依赖性:
树形依赖:a->b->c a依赖b b依赖c 安装时先安装c再安装b再安装a,卸载时顺序相反
环形依赖:a->b->c->a 这种用一条命令安装abc
模块依赖:依赖的不是一个包,而是库依赖包,必须安装别的包,才能安装所需的库依赖包
网上查询该库依赖包需要安装哪个包 www.rpmfind.net
库依赖包命令如 so.2

安装、升级时使用包全名
卸载时使用包名

安装命令
rpm -ivh 包全名

-i:安装
-v:显示详细信息
-h:显示进入
--nodeps:不检测依赖性(一般不用)

升级命令
rpm -Uvh 包全名

卸载命令
rpm -e 包名

选项:--nodeps:不检测依赖性

 

rpm包查询
rpm -q 包名
rpm -qa 查询所有已安装的rpm包
rpm -qa | grep httpd 查询是否已安装httpd包

rpm -qi mysql-community-server 查询已安装包的信息(-i) 后面跟包名
rpm -qip zip-3.0-1-el6.i686.rpm 查询未安装的包的信息(-p) 后面跟包全名

查询包中文件安装位置
rpm -ql 包名
文件安装位置是固定的(默认的)
rpm -qlp zip-3.0-1-el6.i686.rpm 查询该包打算安在哪里,未安装的跟包全名

查询文件属于哪个包
rpm -qf 文件名

查询依赖性
rpm -qR 包名 查询已安装的
rpm -qRp 包全名 查询未安装的

rpm包校验:
rpm -V 包名
举例:
[root@localhost tmp]# rpm -V mysql-community-server
S.5....T. c /etc/my.cnf
表名/etc/my.cnf这个文件已做了修改 S:文件大小改变 5:md5改变 T:修改时间改变
如果没有信息输出说明没有修改

rpm文件提取:假如误修改了,需要用原文件覆盖,可以在rpm包中提取某一个文件来覆盖


rpm2cpio 目标包全名 | cpio -idv ./bin/ls
说明:提取rpm包中ls命令到当前目录下的/bin/ls下

cp /root/bin/ls /bin/
把ls命令复制到bin目录下,修复文件丢失

yum安装
配置/etc/sysconfig/network-scripts/ifcfg-ens33能上网,关键改为 ONBOOT=yes
service network restart

more的网络yum源位置:
/etc/yum.repos.d/CentOS-Base.repo

yum常用命令:

yum list:查询所有可用软件包列表
yum search 包名:查询与包名相关的包

安装:yum -y install 包名
升级:yum -y update 包名
yum -y update 假如不加包名,默认所有软件包 包括内核都升级,会出大问题。注意避免

卸载:yum -y remove 包名 说明:安装完尽量不要卸载

光盘yum源搭建 如果该版本是两张光盘,要安装的包不在第一张里就在第二张里,都试一下
设备状态选择已连接
挂载命令:mount /dev/sr0 /mnt/cdrom

linux所有的yum源在以下目录
/etc/yum.repos.d

CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
mysql-community.repo
mysql-community-source.repo
nginx.repo

光盘搭建使用CentOS-Media.repo,其它的改名,改为xxx.repo.bak 使所有的网络yum源失效
修改光盘yum源文件

源文件内容:
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
file:///media/cdrom/
file:///media/cdrecorder/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

说明:c7-media:容器名称,叫什么都可以
name:名称,叫什么都可以
baseurl:光盘挂载地址,不用的注释掉,现在应该只有baseurl=file:///mnt/cdrom
enabled=0:改为enabled=1,使该yum源生效

源码包安装:
安装指定位置:一般 /usr/local/软件名/

所有rpm包都可以这样执行:/etc/rc.d/init.d/服务 start
所有rpm包的启动文件都放在/etc/rc.d/init.d目录下(绝对路径)

简单启动方式: service 服务名 start

service命令 不能用于源码包安装的
源码包的启动用决定路径启动
例如/usr/local/apache2/bin/apachectl start

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

已经安装了rpm包的httpd 还可以安装源码包的 因为安装位置不同

源码包的保存位置 /usr/local/src/
安装软件位置:/usr/local/

确定安装过程报错:安装过程停止并出现error、warning、no的提示

解压:tar -zxvf httpd-2.4.38.tar.gz
查看目录大小:du -sh httpd-2.4.38
进入解压缩目录
linux中任务源码包都有类似文件:
INSTALL:安装说明
README:使用说明
碰到陌生的源码 先查看安装说明,使用说明


./configure 软件配置与检查(编译前准备)
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑

定义安装路径 ./configure --prefix=/usr/local/apache2
编译 make
make clear(出错了清除临时文件)
编译安装 make install
完成
怎样启动? 看INSTALL中 start,绝对路径启动

卸载:不会产生任何垃圾文件
rm -rf /usr/local/apache2/

发表评论

0/200
463 点赞
0 评论
收藏
为你推荐 换一批