Linux中openssl/opensslv.h找不到问题的解决方法

作者:bladestone 时间:2021-09-06 01:53:12 

前言

众所周知scrapy是Python中鼎鼎大名的爬虫框架,在安装scrapy过程中碰到了openssl某个文件找不到的问题,并进行了分析,记录之。

一、 scrapy以及安装过程

Scrapy是python中鼎鼎大名的爬虫框架,笔者在Centos 7系统之上进行安装,发现了如下问题:

   >> pip install scrapy

由于安装过程中的过程信息比较多,这里只列出了其中的关键片段信息:


running egg_info
writing requirements to src/cryptography.egg-info/requires.txt
writing src/cryptography.egg-info/PKG-INFO
writing top-level names to src/cryptography.egg-info/top_level.txt
writing dependency_links to src/cryptography.egg-info/dependency_links.txt
writing entry points to src/cryptography.egg-info/entry_points.txt
reading manifest file 'src/cryptography.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'docs/_build'
warning: no previously-included files matching '*' found under directory 'vectors'
writing manifest file 'src/cryptography.egg-info/SOURCES.txt'
running build_ext
generating cffi module 'build/temp.linux-x86_64-2.7/_padding.c'
creating build/temp.linux-x86_64-2.7
generating cffi module 'build/temp.linux-x86_64-2.7/_constant_time.c'
generating cffi module 'build/temp.linux-x86_64-2.7/_openssl.c'
building '_openssl' extension
creating build/temp.linux-x86_64-2.7/build
creating build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7
gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/python2.7 -c build/temp.linux-x86_64-2.7/_openssl.c -o build/temp.linux-x86_64-2.7/build/temp.linux-x86_64-2.7/_openssl.o
build/temp.linux-x86_64-2.7/_openssl.c:434:30: fatal error: openssl/opensslv.h: No such file or directory
#include <openssl/opensslv.h>
    ^
compilation terminated.
error: command 'gcc' failed with exit status 1

----------------------------------------
Command "/usr/bin/python2 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-hRMlG0/cryptography/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-ReCoWo-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-hRMlG0/cryptography/
[root@AY131203102210033c39Z ~]# yum install openssl build/temp.linux-x86_64-2.7/_openssl.c:434:30: fatal error: openssl/opensslv.h: No such file or directory
^C

Exiting on user cancel.

由于确实openssl.c文件而安装失败了,貌似没有找到对应的文件

二、问题分析

首先怀疑openssl没有安装,故先进行openssl的检查:

  >> yum info openssl 


Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* epel: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
Installed Packages
Name : openssl
Arch : x86_64
Epoch : 1
Version : 1.0.1e
Release : 60.el7_3.1
Size : 1.5 M
Repo : installed
Summary : Utilities from the general purpose cryptography library with TLS implementation
URL  : http://www.openssl.org/
License : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications between
 : machines. OpenSSL includes a certificate management tool and shared
 : libraries which provide various cryptographic algorithms and
 : protocols.

基于其中的信息可以得知,openssl是一家安装过了,怎么还是会缺少openssl.c的文件呢?

经过一番思考,豁然发现一个基本规则, openssl已经安装二进制的可执行程序,而这里的安装scrapy则需要的是openssl的源文件程序,比如openssl.h。故这里需要补充安装的是openssh.h的开发版,其中包含相关的安装源代码文件。

三、问题的解决

在确认了问题之后,接下来就是安装openssl-devel的安装包了:

  >> yum install openssl-devel

在安装完成之后,重新安装scrapy,就可以顺利安装成功了

总结

推而广之,在Linux系统中都存在类似的问题,在安装特定安装包的过程中,其依赖某些第三方开发包,会曝出某些文件找不到的错误,一般情况下是需要安装依赖包的开发版本的。 这个规则应该是通用的。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

来源:http://blog.csdn.net/blueheart20/article/details/65653670

标签:linux,openssl,opensslv.h
0
投稿

猜你喜欢

  • 帝国CMS采集功能设置图文教程(上)

    2012-03-12 20:25:17
  • 良性“大泡泡”,马云制造

    2007-11-10 18:31:00
  • 谷歌关于网站重复内容的10个建议

    2008-01-23 14:34:00
  • 报告称亚马逊Kindle阅读器今年销量将达55万

    2009-12-03 10:03:00
  • 服务器虚拟化技术:虚拟机优化小窍门

    2012-02-25 19:32:17
  • Vista系统下IIS的HTTP 500错误解决办法

    2008-12-22 08:37:00
  • IIS7下让你的wordpress完美的驱动wp-super-cache

    2011-10-14 20:35:33
  • ubuntu16.04下安装openssh-server报依赖错误的完美解决方法(非常不错)

    2022-06-10 23:01:53
  • Linux下强制杀死进程的方法详解

    2021-04-03 21:19:01
  • 一个“老牌”站长的辛酸

    2008-01-31 13:54:00
  • 雅虎优化:次级页面、主域名与网页级别

    2007-09-23 08:29:00
  • Web服务器启用并运行FTP服务

    2009-01-22 15:56:00
  • Apache 性能最优化分析(4)

    2010-05-22 18:15:00
  • 百度游戏频道与178.com网合作频道正式上线

    2009-11-27 16:32:00
  • 速度速度 提升网站打开速度的七个好办法

    2008-12-15 12:00:00
  • Docker 容器虚拟化的实用技巧总结

    2021-03-09 14:16:50
  • 详细测试 Linux比拼微软家庭服务器

    2010-03-24 18:56:00
  • 利用virtualbox虚拟机实现端口转发

    2022-06-14 01:20:27
  • UCHome2.0特色功能之活动介绍及使用技巧

    2009-09-06 12:31:00
  • 阿里云服务器ping不通解决办法(云服务器搭建完环境访问不了ip解决办法)

    2023-06-14 02:11:45
  • asp之家 网站运营 m.aspxhome.com