2、解决方式
安装C编译器gcc(GNU编译器套件):
yum -y install gcc
3、扩展
gcc即:GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器.
To be a better coder
分类: LINUX
2020-06-18 16:03:48
2、解决方式
安装C编译器gcc(GNU编译器套件):
yum -y install gcc
3、扩展
gcc即:GNU编译器套件(GNU Compiler Collection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如libstdc++、libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器.
问题:
make: 警告:检测到时钟错误。您的创建可能是不完整的。
原因:
1. 文件时间不一致。(或者修改了系统时间)
如何解决:
你touch *一下,然后重新编译
1
|
touch *
|
touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。
linux下新建文件的方式有很多,例如:使用vi新建文件、使用cp命令拷贝一个文件、但是最常用的还是使用touch命令新建一个文件。
语法:touch [options] filename
-a:改变访问时间
-m:改变修改时间
-t timestamp:改变访问时间和修改时间为timestamp
注意:
发现make依然出时钟告警,由于目录下面还有文件夹,没有遍历touch
解决方法::
1
|
find ./ -type f |xargs touch
|
最后:
找到这个存在时间问题的文件,如果是系统文件,需要将系统时间改为最新时间(你的系统时间可能太古老了)
命令为:
1
|
date -s
|
(1)将时间调整为10月11日凌晨1点55分:
1
|
data 10110155
|
(2)将系统时间设定成2005年8月8日:
1
|
date -s 2005/08/08
|
(3)将系统时间设定成下午8点12分0秒:
1
|
date -s 20:12:00
|
该命令是用来修改系统时钟的。在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在执行完 date -s 命令后,如果马上重起系统,修改的时间就有可能没有被写入CMOS。如果要确保修改生效,最好再使用 clock -w 这个命令将系统时间强行写入CMOS。
===========================================================服务器版本:CentOS 7.3 64位
旧Python版本:2.7.5
新Python版本:3.8.0
说明:本次配置使用root用户进行操作,故在代码中未使用sudo语句,请使用非root用户留意
1、切换工作目录至/usr/local
在Linux系统下,路径/usr/local相当于C:/Progrem Files/,通常安装软件时便安装到此目录下。
执行命令:
cd /usr/local
2、下载目标python版本压缩包
执行命令:
wget http://npm.taobao.org/mirrors/python/3.8.0/Python-3.8.0.tgz
这里,我使用的是python在国内的镜像,若希望使用官网地址当然也是可以的,不过速度就两说了...
3、解压压缩包
执行命令:
tar -xzf Python-3.8.0.tgz
4、在当前目录下创建文件夹--python3
执行命令:
mkdir python3
5、编译与安装
a.进入解压文件路径
cd Python-3.8.0
b.生成makefile文件
./configure --prefix=/usr/local/python3
c. 对makefile文件进行操作
make
d.安装
make install
make 命令 是对makefile文件操作,make install 是安装命令,那么 ./configure 是干什么呢?./configure 其实就是生成 makefile 文件
——参考“朝闻道”
不指定prefix,可执行文件默认放在/usr/local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在/usr/local/share
指定prefix,直接删掉一个文件夹就够了
——参考“”
在这个过程中,出现了安装失败的问题:
zipimport.ZipImportError: can't decompress data; zlib not available
这是由于缺少依赖造成的,可执行以下代码:
yum install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel libffi-devel
——参考“寒爵”
6、两种版本配置方法
关于配置python版本的方法大致分为两种:
ln -s a b # 建立软连接,b指向a
——参考“颜子”
下面分别对两种方法进行介绍。
6.1直接创建python3软链
在/usr/bin路径下创建python3软链,指向已安装的python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
在/usr/bin路径下创建pip3软链,指向已安装的pip3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
此时系统中存在两个python版本:
命令 python 对应的仍是默认2.7版本
命令 python3 则对应新安装的3.8版本,
此本方法到此便结束了,可以快乐地打出 python3 -V, pip3 -V查看对应版本了
6.2 覆盖现有python,启动python时指向python3.8
mv /usr/bin/python /usr/bin/python2_old mv /usr/bin/pip /usr/bin/pip2_old #第三部分的文件名可根据本机版本修改
ln -s /usr/local/python3/bin/python3 /usr/bin/python ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
此方法到这里已经完成一半啦,可以使用命令 python -V, pip -V查看版本
根据“撑起风帆”的经验,还应该对easy_install的指向进行修改,使用python3时可能会用到(未验证),用到时可根据上述“修改软链接”的方法进行修改
6.2.1 收尾工作
由于修改了python的版本,会导致一些依赖于旧版本的程序出现错误,如yum,可进行如下配置:
vim /usr/bin/yum
文件第一行如下图:
将python修改为旧的版本号,此处添加2.7:
不过在安装软件时仍会报错:
SyntaxError: invalid syntax File "/usr/libexec/urlgrabber-ext-down", line 28 except OSError, e:
还是因为python更换的原因, 依照上述操作修改文件即可:打开/usr/libexec/urlgrabber-ext-down 文件,将 #!/usr/bin/python 修改为 #!/usr/bin/python2.7
其他工具或库如果在安装过程中也报类似错误,同法处理。
=============================================================