V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fxxkgw
V2EX  ›  Python

centos 编译 uwsgi 提示 pcre 函数找不到

  •  
  •   fxxkgw · 2017-07-25 22:05:38 +08:00 · 2501 次点击
    这是一个创建于 2685 天前的主题,其中的信息可能已经有所发展或是发生改变。

    routing.c:(.text+0x366c): undefined reference to `pcre_free_study'

    routing.c:(.text+0x3690): undefined reference to `pcre_free_study'

    collect2: ld returned 1 exit status

    *** error linking uWSGI ***

    make: *** [all] Error 1

    [[email protected]]# rpm -qa | grep pcre

    pcre-devel-7.8-7.el6.x86_64

    pcre-7.8-7.el6.x86_64

    编译时候又没法设置 prefix 之类 好气啊。。 求大大帮忙看看。。

    centos 系统

    第 1 条附言  ·  2017-07-25 23:45:12 +08:00
    搞定了。。升级了 pcre 到 8.*就 OK 了。。
    说起来也尴尬 有一个相同的环境编译 uwsgi 就没问题 我看他的 pcre 版本和我的一致 就没太怀疑版本问题
    实在没办法了就只能尝试升级 pcre 没想到就这个问题
    如果中途重新编译变更了 so 这种静态库 rpm qa | grep pcre 简直就是误导!
    14 条回复    2017-07-26 10:29:02 +08:00
    chinvo
        1
    chinvo  
       2017-07-25 22:11:20 +08:00
    jyf007
        2
    jyf007  
       2017-07-25 22:15:36 +08:00
    @chinvo 高人,怼人就得有这种气势
    chinvo
        3
    chinvo  
       2017-07-25 22:17:39 +08:00
    @jyf007 嘛,怼人也得讲究基本法,我确定 Google 能搜到才会放这种链接,免得被人说“根本搜不到嘛”
    fxxkgw
        4
    fxxkgw  
    OP
       2017-07-25 22:59:57 +08:00
    @chinvo 囧。。鱼摆摆这两天被封了 所以。。。暂时还没找到合适的 vpn
    jpacg
        5
    jpacg  
       2017-07-25 23:09:19 +08:00
    @chinvo 哈哈,这个好,收藏了。
    jpacg
        6
    jpacg  
       2017-07-25 23:11:36 +08:00
    我 Python 项目都是用 docker 部署的,服务器都是用 ubuntu,爱莫能助了
    sagaxu
        7
    sagaxu  
       2017-07-25 23:24:57 +08:00
    # pip install uwsgi
    Collecting uwsgi
    Using cached uwsgi-2.0.15.tar.gz
    Installing collected packages: uwsgi
    Running setup.py install for uwsgi ... done
    Successfully installed uwsgi-2.0.15


    # uwsgi --version
    2.0.15

    # lsb_release -a
    LSB Version: :core-4.1-amd64:core-4.1-noarch
    Distributor ID: CentOS
    Description: CentOS Linux release 7.3.1611 (Core)
    Release: 7.3.1611
    Codename: Core

    # rpm -qa | grep pcre
    pcre-devel-8.32-15.el7_2.1.x86_64
    pcre-8.32-15.el7_2.1.x86_64


    centos 搞 uwsgi 不是一键安装吗?
    fxxkgw
        8
    fxxkgw  
    OP
       2017-07-25 23:47:17 +08:00
    @sagaxu centos 下确实可以一键安装 但是 pip 安装时候其实也有中途编译、链接的过程 如果有些依赖缺失一样会报错的。。
    我的服务器是新机器 上面干干净净 所以会不断报错 不断安装各种库和 devel。。
    fxxkgw
        9
    fxxkgw  
    OP
       2017-07-25 23:48:06 +08:00
    @jpacg 我们也在逐步切换到 docker。。 同样感谢~
    neoblackcap
        10
    neoblackcap  
       2017-07-26 02:18:48 +08:00
    其实 Gunicorn 的性能也不差,部署起来超级简单的,为什么不用这个呢?而且你觉得性能还需要提升还可以将 Gunicorn 自带的 worker 换掉,换成 bjoern 或者 meinheld
    est
        11
    est  
       2017-07-26 09:25:29 +08:00
    @neoblackcap 不是性能问题

    gunicorn 自带 self-healing 功能嘛
    gunicorn 可以检测内存溢出自动重启 worker 嘛
    gunicorn 可以 worker 失去响应自动重启 worker 嘛
    gunicorn 自带各种姿势日志输出极自动 rotate 功能嘛
    gunicorn 自带集群管理动态增删 worker 功能嘛


    等等

    我可以列 1000 条。


    uwsgi 的运维、配置都比 gunicorn 简单。但是 uwsgi 那个配置文档直接把初学者吓尿了。。。。
    sagaxu
        12
    sagaxu  
       2017-07-26 10:02:02 +08:00 via Android
    @fxxkgw 我的也是新机器,阿里云的 centos 版,之前只用 yum 安装过一个 nginx 和 php,没装过其它东西。你新机器为何要用 centos6 不用 7 呢?不是给自己找麻烦么。
    neoblackcap
        13
    neoblackcap  
       2017-07-26 10:02:28 +08:00
    @est 萝卜青菜各有所好。我只是觉得极大多数情况 Gunicorn 都是够用的。
    比如我之前负责的项目,压根就不需要应用自动 rotate 日志,日志都是 syslog 跟 elk 做的。
    est
        14
    est  
       2017-07-26 10:29:02 +08:00
    @neoblackcap 够用是够用了,但是用的不爽。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2198 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:15 · PVG 09:15 · LAX 17:15 · JFK 20:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.