更新yum源解决:centos7 安装 Redis ,make编译报错,安装gcc 提示:没有可用软件包 gcc
程序员文章站
2022-05-31 10:21:13
...
全程使用的是XShell敲的命令。
首先说一下遇到的问题:
我的centos是虚拟机。我在物理机上下载好了redis压缩包redis-5.0.5.tar.gz,然后 rz 命令上传到虚拟机,解压,编译。
问题出现了:编译失败
[[email protected] redis-5.0.5]# make
cd src && make all
make[1]: 进入目录“/softwares/redis-5.0.5/src”
CC Makefile.dep
make[1]: 离开目录“/softwares/redis-5.0.5/src”
make[1]: 进入目录“/softwares/redis-5.0.5/src”
CC adlist.o
/bin/sh: cc: 未找到命令
make[1]: *** [adlist.o] 错误 127
make[1]: 离开目录“/softwares/redis-5.0.5/src”
make: *** [all] 错误 2
解决:更新yum repo源
1、备份,为了更新失败时切换回去,(好像从来也没有还原过)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2、进入yum源配置文件夹
cd /etc/yum.repos.d/
3、根据centos版本下载对应的新源
CentOS7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
6
5
如果是centos 6 或者 centos 5 更改一下数字即可
因为是最小安装linux,我的centos上没有wget。
因此我使用主机访问: http://mirrors.aliyun.com/repo/Centos-7.repo
下载成功后使用 rz 命令 上传到当前目录(/etc/yum.repos.d/)
4、yum makecache
生成缓存,会把新下载CentOS-Base.repo源生效。
更新时会报某个aliyun timeout,他会自动尝试阿里其他镜像,最后自己会用基础镜像,然后自动更新一部分。因为基础镜像过时了。
[[email protected] yum.repos.d]# yum makecache
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
bintray--sbt-rpm | 1.3 kB 00:00:00
docker-ce-stable | 3.5 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
base/7/x86_64/primary_db FAILED
http://mirrors.cloud.aliyuncs.com/centos/7/os/x86_64/repodata/04efe80d41ea3d94d36294f7107709d1c8f70db11e152d6ef562da344748581a-primary.sqlite.bz2: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
正在尝试其它镜像。
(1/14): base/7/x86_64/group_gz | 165 kB 00:00:00
(2/14): bintray--sbt-rpm/other | 1.6 kB 00:00:01
(3/14): bintray--sbt-rpm/filelists | 8.6 kB 00:00:01
(4/14): extras/7/x86_64/filelists_db | 217 kB 00:00:00
(5/14): extras/7/x86_64/primary_db | 165 kB 00:00:00
(6/14): docker-ce-stable/x86_64/other_db | 113 kB 00:00:00
(7/14): extras/7/x86_64/other_db | 106 kB 00:00:00
(8/14): updates/7/x86_64/filelists_db | 4.5 MB 00:00:00
(9/14): docker-ce-stable/x86_64/filelists_db | 19 kB 00:00:02
(10/14): updates/7/x86_64/other_db | 573 kB 00:00:00
(11/14): base/7/x86_64/primary_db | 6.0 MB 00:00:00
(12/14): base/7/x86_64/other_db | 2.6 MB 00:00:08
base/7/x86_64/filelists_db FAILED
http://mirrors.aliyuncs.com/centos/7/os/x86_64/repodata/41232548001a78473ae0f2d4b92e1ec28f7a0593e0495056515887fe2a39b416-filelists.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
正在尝试其它镜像。
updates/7/x86_64/primary_db FAILED ========================- ] 82 kB/s | 15 MB 00:02:58 ETA
http://mirrors.aliyuncs.com/centos/7/updates/x86_64/repodata/12edbf1c5cf7ae40141e7613deb678796a73317a58670b419846ad44a46c7b77-primary.sqlite.bz2: [Errno 14] curl#7 - "Failed connect to mirrors.aliyuncs.com:80; Connection refused"
正在尝试其它镜像。
(13/14): updates/7/x86_64/primary_db | 7.6 MB 00:00:01
(14/14): base/7/x86_64/filelists_db | 7.3 MB 00:00:28
bintray--sbt-rpm 49/49
bintray--sbt-rpm 49/49
元数据缓存已建立
此时可以安装gcc编译器了
[[email protected] yum.repos.d]# cd /softwares/redis-5.0.5
[[email protected] redis-5.0.5]# yum install gcc
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 gcc.x86_64.0.4.8.5-39.el7 将被 安装
--> 正在处理依赖关系 libgomp = 4.8.5-39.el7,它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 cpp = 4.8.5-39.el7,它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 libgcc >= 4.8.5-39.el7,它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 glibc-devel >= 2.2.90-12,它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 libmpfr.so.4()(64bit),它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在处理依赖关系 libmpc.so.3()(64bit),它被软件包 gcc-4.8.5-39.el7.x86_64 需要
--> 正在检查事务
---> 软件包 cpp.x86_64.0.4.8.5-39.el7 将被 安装
---> 软件包 glibc-devel.x86_64.0.2.17-292.el7 将被 安装
--> 正在处理依赖关系 glibc-headers = 2.17-292.el7,它被软件包 glibc-devel-2.17-292.el7.x86_64 需要
--> 正在处理依赖关系 glibc = 2.17-292.el7,它被软件包 glibc-devel-2.17-292.el7.x86_64 需要
--> 正在处理依赖关系 glibc-headers,它被软件包 glibc-devel-2.17-292.el7.x86_64 需要
---> 软件包 libgcc.x86_64.0.4.8.5-36.el7 将被 升级
---> 软件包 libgcc.x86_64.0.4.8.5-39.el7 将被 更新
---> 软件包 libgomp.x86_64.0.4.8.5-36.el7 将被 升级
---> 软件包 libgomp.x86_64.0.4.8.5-39.el7 将被 更新
---> 软件包 libmpc.x86_64.0.1.0.1-3.el7 将被 安装
---> 软件包 mpfr.x86_64.0.3.1.1-4.el7 将被 安装
--> 正在检查事务
---> 软件包 glibc.x86_64.0.2.17-260.el7 将被 升级
--> 正在处理依赖关系 glibc = 2.17-260.el7,它被软件包 glibc-common-2.17-260.el7.x86_64 需要
---> 软件包 glibc.x86_64.0.2.17-292.el7 将被 更新
---> 软件包 glibc-headers.x86_64.0.2.17-292.el7 将被 安装
--> 正在处理依赖关系 kernel-headers >= 2.2.1,它被软件包 glibc-headers-2.17-292.el7.x86_64 需要
--> 正在处理依赖关系 kernel-headers,它被软件包 glibc-headers-2.17-292.el7.x86_64 需要
--> 正在检查事务
---> 软件包 glibc-common.x86_64.0.2.17-260.el7 将被 升级
---> 软件包 glibc-common.x86_64.0.2.17-292.el7 将被 更新
---> 软件包 kernel-headers.x86_64.0.3.10.0-1062.18.1.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
======================================================================================================================================================================
Package 架构 版本 源 大小
======================================================================================================================================================================
正在安装:
gcc x86_64 4.8.5-39.el7 base 16 M
为依赖而安装:
cpp x86_64 4.8.5-39.el7 base 5.9 M
glibc-devel x86_64 2.17-292.el7 base 1.1 M
glibc-headers x86_64 2.17-292.el7 base 687 k
kernel-headers x86_64 3.10.0-1062.18.1.el7 updates 8.8 M
libmpc x86_64 1.0.1-3.el7 base 51 k
mpfr x86_64 3.1.1-4.el7 base 203 k
为依赖而更新:
glibc x86_64 2.17-292.el7 base 3.6 M
glibc-common x86_64 2.17-292.el7 base 11 M
libgcc x86_64 4.8.5-39.el7 base 102 k
libgomp x86_64 4.8.5-39.el7 base 158 k
事务概要
======================================================================================================================================================================
安装 1 软件包 (+6 依赖软件包)
升级 ( 4 依赖软件包)
总下载量:48 M
Is this ok [y/d/N]: y
Downloading packages:
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/11): cpp-4.8.5-39.el7.x86_64.rpm | 5.9 MB 00:00:01
(2/11): glibc-2.17-292.el7.x86_64.rpm | 3.6 MB 00:00:00
(3/11): gcc-4.8.5-39.el7.x86_64.rpm | 16 MB 00:00:03
(4/11): glibc-devel-2.17-292.el7.x86_64.rpm | 1.1 MB 00:00:00
(5/11): glibc-headers-2.17-292.el7.x86_64.rpm | 687 kB 00:00:00
(6/11): libgcc-4.8.5-39.el7.x86_64.rpm | 102 kB 00:00:00
(7/11): libgomp-4.8.5-39.el7.x86_64.rpm | 158 kB 00:00:00
(8/11): glibc-common-2.17-292.el7.x86_64.rpm | 11 MB 00:00:02
(9/11): libmpc-1.0.1-3.el7.x86_64.rpm | 51 kB 00:00:00
(10/11): mpfr-3.1.1-4.el7.x86_64.rpm | 203 kB 00:00:00
(11/11): kernel-headers-3.10.0-1062.18.1.el7.x86_64.rpm | 8.8 MB 00:00:01
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
总计 9.3 MB/s | 48 MB 00:00:05
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在更新 : libgcc-4.8.5-39.el7.x86_64 1/15
正在更新 : glibc-common-2.17-292.el7.x86_64 2/15
正在更新 : glibc-2.17-292.el7.x86_64 3/15
warning: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew
正在安装 : mpfr-3.1.1-4.el7.x86_64 4/15
正在安装 : libmpc-1.0.1-3.el7.x86_64 5/15
正在安装 : cpp-4.8.5-39.el7.x86_64 6/15
正在更新 : libgomp-4.8.5-39.el7.x86_64 7/15
正在安装 : kernel-headers-3.10.0-1062.18.1.el7.x86_64 8/15
正在安装 : glibc-headers-2.17-292.el7.x86_64 9/15
正在安装 : glibc-devel-2.17-292.el7.x86_64 10/15
正在安装 : gcc-4.8.5-39.el7.x86_64 11/15
清理 : libgomp-4.8.5-36.el7.x86_64 12/15
清理 : glibc-common-2.17-260.el7.x86_64 13/15
清理 : glibc-2.17-260.el7.x86_64 14/15
清理 : libgcc-4.8.5-36.el7.x86_64 15/15
验证中 : glibc-devel-2.17-292.el7.x86_64 1/15
验证中 : glibc-2.17-292.el7.x86_64 2/15
验证中 : mpfr-3.1.1-4.el7.x86_64 3/15
验证中 : libgcc-4.8.5-39.el7.x86_64 4/15
验证中 : libgomp-4.8.5-39.el7.x86_64 5/15
验证中 : libmpc-1.0.1-3.el7.x86_64 6/15
验证中 : cpp-4.8.5-39.el7.x86_64 7/15
验证中 : gcc-4.8.5-39.el7.x86_64 8/15
验证中 : glibc-common-2.17-292.el7.x86_64 9/15
验证中 : glibc-headers-2.17-292.el7.x86_64 10/15
验证中 : kernel-headers-3.10.0-1062.18.1.el7.x86_64 11/15
验证中 : glibc-2.17-260.el7.x86_64 12/15
验证中 : libgomp-4.8.5-36.el7.x86_64 13/15
验证中 : glibc-common-2.17-260.el7.x86_64 14/15
验证中 : libgcc-4.8.5-36.el7.x86_64 15/15
已安装:
gcc.x86_64 0:4.8.5-39.el7
作为依赖被安装:
cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.18.1.el7
libmpc.x86_64 0:1.0.1-3.el7 mpfr.x86_64 0:3.1.1-4.el7
作为依赖被升级:
glibc.x86_64 0:2.17-292.el7 glibc-common.x86_64 0:2.17-292.el7 libgcc.x86_64 0:4.8.5-39.el7 libgomp.x86_64 0:4.8.5-39.el7
完毕!
安装完成,可以进行编译了。
现在我已经切换到redis文件夹下了,我自己创建的:/software/redis-5.0.5
此时先清理一下编译缓存: make distclean
[[email protected] redis-5.0.5]# make distclean
cd src && make distclean
make[1]: 进入目录“/softwares/redis-5.0.5/src”
rm -rf redis-server redis-sentinel redis-cli redis-benchmark redis-check-rdb redis-check-aof *.o *.gcda *.gcno *.gcov redis.info lcov-html Makefile.dep dict-benchmark
(cd ../deps && make distclean)
make[2]: 进入目录“/softwares/redis-5.0.5/deps”
(cd hiredis && make clean) > /dev/null || true
(cd linenoise && make clean) > /dev/null || true
(cd lua && make clean) > /dev/null || true
(cd jemalloc && [ -f Makefile ] && make distclean) > /dev/null || true
(rm -f .make-*)
make[2]: 离开目录“/softwares/redis-5.0.5/deps”
(rm -f .make-*)
make[1]: 离开目录“/softwares/redis-5.0.5/src”
再编译: make
编译的日志太长,就不往这里放了。
编译成功后就可以使用啦!
上一篇: CentOS7安装redis 报错,解决没有可用软件包
下一篇: 防御性编程