Linux软件包分类
源码包
源码包能直接看到源码,安装时需要人为手工设置安装位置,一般是/usr/local/软件名/,源码包的升级版–脚本安装包,人为的改动源码使其有安装界面。
优点:
1、开源
2、安装时可以自由选择所需功能
3、软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高
4、卸载方便,直接删了你安装软件的那个目录就好了
缺点:
1、安装步骤较多,尤其安装较大的软件集合时,容易出现拼写错误
2、编译时间过长
3、因为是编译安装,安装过程中一旦报错新手很难解决
二进制包
这里的二进制包要包括centos中的rpm包,rpm包有默认的安装位置。/etc/配置文件安装目录;/usr/bin/可执行的命令安装目录;/usr/lib/程序所使用的函数库保存位置;/usr/share/doc/基本的软件使用手册保存位置;/usr/share/man/帮助文件保存位置。
优点:
1、包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
2、安装速度比源码包快很多
缺点:
1、已经经过编译了,看不到源码
2、功能选择不如源代码包灵活
3、安装过程中有很多依赖包,依赖性不好解决
yum安装方式
yum是一个在Fedora和RedHat以及SUSE中的Shell前段软件包管理器,基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且一次安装所有依赖的软件包,无须繁琐的一次次下载,安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁又好记。
从上面解释我们可以看到yum管理是从指定的服务器(网络yum源)下载,所以必须要有网络或者自己手动配置一个本地yum源,而且最关键的是yum能帮助我们解除依赖关系。
点击:yum源配置方法
yum相关命令
显示配置的仓库
yum repolist
yum repolist all(显示所有)
yum repolist enabled (显示可用)
显示所有软件包
yum list或者yum list all
yum list|grep 包名
yum list installed | grep 包名(查看是否已安装某包)
yum list available(显示可安装的包)
yum list updates (显示已更新的包)
yum list recent (显示最近增加的包)
安装
yum install 包名
yum install -y 包名 (对所有的Y/N选择Y)
升级
yum update 包名
卸载
yum remove 包名
创建和清理缓存
yum makecache (构建缓存)
yum clean all (清理)
搜索
yum search 包名
显示软件包信息
yum info 包名
列出软件包提供哪些文件
yum provides 包名
【例1】过滤出gzip包,查看是否已安装zip包,前面有@表示已安装。
[root@localhost ~]# yum list |grep "gzip"
gzip.x86_64 1.5-10.el7 @anaconda
[root@localhost ~]# yum list installed |grep "zip"
bzip2.x86_64 1.0.6-13.el7 @mylinux
bzip2-libs.x86_64 1.0.6-13.el7 @anaconda
gzip.x86_64 1.5-10.el7 @anaconda
unzip.x86_64 6.0-19.el7 @mylinux
zip.x86_64 3.0-11.el7 @mylinux
配置的yum不能使用
一般情况下是以下四种问题:
(一)检查网络是否畅通
ping本机
[root@localhost ~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=128 time=1.72 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=128 time=1.77 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=128 time=1.43 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=128 time=1.82 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=128 time=2.45 ms
...
ping外网
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=1 ttl=128 time=42.2 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=2 ttl=128 time=42.5 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=3 ttl=128 time=42.3 ms
64 bytes from 14.215.177.39 (14.215.177.39): icmp_seq=4 ttl=128 time=42.0 ms
(二)缓存问题:重新清理然后生成一下缓存
yum clean all
yum makecache
(三)配置源和系统版本不匹配:换一个yum源
(四)配置文件问题:检查配置文件
建立yum服务器(待修改)
安装配置ftp服务
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir /var/ftp/{centos6u8,centos7u4}
[root@localhost ~]# systemctl start vsftpd
[root@localhost ~]# systemctl enable vsftpb #重启时被系统自动拉起来
配置防火墙
[root@localhost ~]# firewall-cmd --permanent --add-service=ftp #让ftp通过防火墙
[root@localhost ~]# firewall-cmd --reload #重载防火墙
关闭SELinux(也是防火墙)
[root@localhost ~]# setenforce 0
SELINUX=disabled
挂载centos镜像
rpm安装方式
将光驱挂载在/media下,切换到此目录中我们会看到有一个Package目录,在这个目录中是我们系统自带的编译好的rpm程序包。
yum-plugin-verify-1.1.31-50.el7.noarch.rpm
yum-plugin-versionlock-1.1.31-50.el7.noarch.rpm
yum-rhn-plugin-2.0.1-10.el7.noarch.rpm
yum-updateonboot-1.1.31-50.el7.noarch.rpm
yum-utils-1.1.31-50.el7.noarch.rpm
zenity-3.28.1-1.el7.x86_64.rpm
zip-3.0-11.el7.x86_64.rpm
zlib-1.2.7-18.el7.i686.rpm
zlib-1.2.7-18.el7.x86_64.rpm
zlib-devel-1.2.7-18.el7.i686.rpm
zlib-devel-1.2.7-18.el7.x86_64.rpm
以zip-3.0-11.el7.x86_64.rpm为例,
zip:软件包名
3.0:主版本号.次版本号
11:发布版本号,表示第几次编译生成的
el7:表示RHEL 7.x平台下
x86:CPU架构
64:支持系统位数
rpm:rpm包,可用rpm命令直接安装
noarch:表示任何平台都可以安装
找rpm包:https://www.rpmfind.net/
rpm相关命令
rmp包安装
-i | install 安装 |
---|---|
-v | verbose 显示安装详细信息 |
-h | hash marks输出进度条;每个#表示%2的进度 |
- -nodeps | 不检测依赖 |
- -replacepkgs | 重新安装 |
注意:这种方式和源码安装一样需要先安装依赖
【例2】安装wget并且显示详细信息及进度(须在Package目录下)
[root@localhost Packages]# rpm -ihv wget-1.14-18.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:wget-1.14-18.el7 ################################# [100%]
rpm包升级
-u | upgrade 升级或安装 |
---|---|
-F | 升级 |
rpm包卸载(不能解除依赖)
-e | 卸载 |
---|---|
- -nodeps | 不检查依赖 |
- -test | 测试卸载 |
查询rpm包
-q | 查询 |
---|---|
-a | 所有 |
-qa | 查询已安装的rpm包 |
-i | 查询软件信息 |
-p | 查询未安装包信息 |
-qi | 查询详细信息 |
-ql | 查询安装路径 |
-qf | 查询系统文件属于哪个软件包 |
-qR | 查找依赖性 |
源码安装方式
编译安装软件程序包源码编译安装三步走:./configure、make、make install
./configure
- 指定安装路径,例如 --prefix=/usr/local/apache
- 启用或禁用某项功能,例如 --enable-ssl,–disable-filter
- 和其他软件关联,例如 --with-pcre
- 检查安装环境,例如是否有编译器gcc,是否满足软件的依赖需求
- 最终生成:Makefile
以安装memcache为例
第一步:下载源码包
(直接复制粘贴)
memcached1.6.6包
libevent-2.1.8包
[root@localhost ~]# wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz
第二步:解压
将这两个包解压到usr/local/src下
tar xf libevent-2.1.8-stable.tar.gz -C /usr/local/src/
tar xf memcached-1.5.6.tar.gz -C /usr/local/src/
第三步:预编译libevent
首先下载c编译工具
yum install gcc-c++ gcc make
进入 /usr/local/src/libevent-2.1.8-stable目录中进行预编译
cd /usr/local/src/libevent-2.1.8-stable
./configure --prefix=/usr/local/libevent
编译完成后查看是否成功
echo $?
0
预编译mencache
(由于memcache依赖于libevent包,因此等libevent安装好之后再对mecache进行预编译以往下的步骤)
cd /usr/local/src/memcached-1.5.6/
./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
echo $?
0
第四步:编译
make
echo $?
0
第五步:安装
make install
echo $?
0
将windows上的包传输到Linux上:lrzsz