千家信息网

如何在tinycolinux上编译odoo8

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"如何在tinycolinux上编译odoo8"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2026年10月31日如何在tinycolinux上编译odoo8

本篇内容介绍了"如何在tinycolinux上编译odoo8"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

odoo采用python,要谈到语言的优异对比足于掀起大论战了,我不重复那些聚焦语言内部如何pythonic的老话题,只讲几条外部特征:

1,C系和原生程序,是基本所有现实中可见系统实现的基石,但C系不一定就是最好的,都是先用起来的实用主义的产品,而python,就是所有linux发布版事实上的脚本语言环境。

2,在语言选型上,虽然工程层面是提出越来越多的脚本语言来支持各种domain,但其实历史上还是倾向直接一门丰富langtechs语言支持库级表达的DSL,这也是为什么历史上众多语言很好地完成了某领域部分的事现实上在其它领域不好用,但还是会宣称它自己是通用脚本语言一样。比如php不被用于作非WEB开发,其它语言不常用于自然语言处或科学计算等等,python虽然也不够通用,但事实上它的应用领域最通用。

3,在语言选型上,工程上是提倡越来越多的语言,但具体到人和学习者,我们一般倾向于只学二门语言一门C系必学(C or c++),另一门应用脚本语言,且这二种语言形成one host one guest的only two选型特征,根据2中提到的二种语言要面向DSL包纳越来越多这些特征,lua虽然精微与C一样重正交设计易与c as hosting交互但依然需要出现c系的面向对象等CPP多范型里面的需求场景,所以除去lua,c这种较专用,重基础和偏门的,所以在应用上我们依然需要学习python和cpp这种多范型支持的,而python即是这种langtech level和liblevel都battery included语言。

python in onlytwo as guest for c series是种混合语言系统,业界已有混合语言的实作品,下面这些产品也有python界的比对物这里只是拿来作为例子:比如制造DSL支持领域逻辑+jit的terralang,比如compiled to lua的moonscript(它提出新语言免去了直接binding的需要),还比如cython,zephir这种仅是生成C模块作为原语言模块的"混合语言"系统(它没有提出新语言)。

下面就让我们来打造tinycolinux上的lnpp appstack结构(linux+nginx+python+postgresql),并安装odoo8,注意这里我们只精简安装odoo的必要模块和web相关模块。

编译lnpp的python+uswgi和postgresql

接《为tinycolinux创建应用和lnmp-源码和toolchain》文,我们这次是编译python,除了那文中gcc中需要的tinycorelinux的tcz,我们还需要openssl-1.0.0-dev.tcz(事实上python编译不要它但是接下来pip要用到它),解压安装它,下载python src,我选择的是Python-2.7.14rc1.tgz,解压cd到src目录我们这里是/home/tc/Python-2.7.14rc1,sudo ./configure --prefix=/usr/local/python(你可以加条 --enable-threads未来用python启动uswgi多线程支持会用到),sudo make install

cd /usr/local/python/bin,下载pip,wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py ,然后sudo python get-pip.py安装pip。接下来可以安装uswgi了sudo pip install uswgi(会用到与nginx编译时一样的pcre-dev.tcz),运行uswgi,显示安装后的uswgi版本是,ctl+c退出它,下面第二部分我们会谈到以正确详细的参数运行它。

对于pgsql我下载的是postgresql-10.1.tar.gz,按处理python src的方法处理它,会要求用到readline,在sudo ./configure --prefix=/usr/local/pgsql --disable-redline中禁用。sudo make install 编译完。然后在/usr/local/pgsql中创建一个data文件夹,右击权限设置为7777 组root,用户tc[1001]。这是因为pgsql默认实际上也不允许以root方式运行。

sudo -u tc /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data --encoding=UTF8创建默认系统数据库base,然后启动它sudo -u tc /usr/local/pgsql/bin/pg_ctl start -D /usr/local/pgsql/data(pg_ctl start也可是postgresql),此时tc用户对于这个数据库的密码为空端口为5432, sudo -u tc /usr/local/pgsql/bin/psql base可连上管理,ctl+c退出管理,进入data目录。修改二个conf文件使得可本地用navcat等工具管理否则会出现server closed the connection unexpectedly postgresql错误,首先在postgresql.conf 打开listenadress="*",然后在pg_hba.conf中加一条: host all all 10.0.2.2/32 trust(10.0.2.2是tinycolinux slirp模式下的host windows地址,你也可以改成0.0.0.0)。

为什么加--encoding呢。因为不这样做稍后在安装完odoo在base中建立odoo数据库时会提示:new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)

在lnpp中安装精简odoo,python模块和配置uswgi和nginx参数

我们先安装odoo再来处理python,这样运行它时可以逐个通过pip安装缺少的python模块,将odoo8释放到/usr/local/nginx/html,精简/usr/local/nginx/html/odoo/addons安装的所有模块,仅保留以下:

accountaccount_voucheranalyticauth_cryptauth_signupbase_action_rulebase_importbase_setupboardbuscalendarcontactsdecimal_precisiondocumentediemail_templatefetchmailgamificationgoogle_accountgoogle_driveim_chatim_livechatknowledgemailmarketingnotepadpad_projectpaymentpayment_paypalpayment_transferprocurementproductprojectreportresourcesalesales_teamsharewebwebsitewebsite_blogwebsite_forumwebsite_forum_docwebsite_livechatwebsite_mailwebsite_partnerwebsite_paymentwebsite_reportwebsite_saleweb_calendarweb_diagramweb_ganttweb_graphweb_kanbanweb_kanban_gaugeweb_kanban_sparklineweb_testsweb_view_editor

下面我们来联合配置启动uwsgi和python,nginx,我们还希望像lnmp一样,分别独立启动nginx,mysql和php-cgi(它就相当于python中的uwsgi),先启动uswgi:

/usr/local/python/bin/uwsgi --socket :8000 --pythonpath /usr/local/nginx/html/odoo --wsgi-file /usr/local/nginx/html/odoo/openerp-wsgi.py

实际上它也有很多变体和缩略形式(你可以参照网上建立一个小例子代替openerp-wsgi.py中的内容来分别测试):

--socket=:8000 --master --uid=tc --gid=root --wsgi-file /usr/local/nginx/html/odoo/openerp-wsgi.py --daemonize=/usr/local/python/bin/uwsgi.log

--socket=:8000 --chdir=/usr/local/nginx/html/odoo --wsgi-file openerp-wsgi.py (以上chdir也可用pythonpath代替,此pythonpath非python里面的应用模块寻找意义上的pythonmoudlepath)

--manage-script-name --mount /yourapplication=myapp:app

-s :8000 -w uwsgi-server:application -d somelogfile

(以上参数都可写进一个ini,然后以uswgi指定ini的方式进行,但上面我们倾向于不使用uwsgi+ini文件的方式)

可以看到上面总有静态配置的东西,要么地址要么模块名要么类名,而lnmp中的php-cgi后面的参数是不与任何静态地址挂钩的,它就是一个全局服务器将语言服务转化成cgi或uwsgi,所以我们得改动一下,这个改动叫"uswgi的动态模式":

/usr/local/python/bin/uwsgi --socket=:8000 --master --daemonize=/usr/local/python/bin/uwsgi.log

nginx下正确配置以配合来自上面uwsgi的"动态模式"(可以看出与静态模式下配置条目的相对应性):

include uwsgi_params;uwsgi_param UWSGI_CHDIR /usr/local/nginx/html/odoo;uwsgi_param UWSGI_MODULE uwsgi-server; (不需要.py)uwsgi_param UWSGI_CALLABLE application;uwsgi_pass 127.0.0.1:8000;

修改/usr/local/nginx/html/odoo下的swgi-openerp.py对应于下面的一些条目,(它相当于同cd目录下./openerp-server -c ./openerp-server.conf,openerp-server.conf中的内容即类似下面修改的得到的配置文件):

db_host = 127.0.0.1db_port = 5432db_user = tcdb_password = pg_path = /usr/local/pgsql/binaddons_path = /usr/local/nginx/html/odoo/addons,/usr/local/pgsql/data/addons/8.0 (不设置这个,会导致 http://xxx:/web/static.... full.css 404)data_dir = /usr/local/pgsql/data

确定python所须模块在最后进行,注释掉uwsgi启动时的daemonize项,查看启动后的输出,并一一sudo pip install 模块名安装,其中pillow和pychart特殊处理如下:

.......sudo pip install Pillow==3.4.2 (不安装这个版本会出现cant create space错误)sudo pip install http://archive.ubuntu.com/ubuntu/pool/universe/p/python-pychart/python-pychart_1.39.orig.tar.gz.....

上述lnpp全部成功启动会自动在/usr/local/pgsql/data下生成filestor,addons/8.0等目录,访问localhost,成功!!

总结起来,我们需要在tinycolinux启动时在/opt/bootlocal.sh中以如下命令分别启动nginx,uswgi和

/usr/local/nginx/sbin/nginx/usr/local/python/bin/uwsgi --socket=:8000 --master --uid=tc --gid=root --daemonize=/usr/local/python/bin/uwsgi.log sudo -u tc /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data

好了,进入odoo怎么应用和操作又是一种境地了,odoo所有的操作中,数据都有固定的视图,一条博文和一个文件是一样的,一个产品和一个电脑是一样的,faint,我记得怎么进管理模式,忘了。

"如何在tinycolinux上编译odoo8"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

语言 模块 应用 配置 文件 模式 支持 编译 内容 参数 数据 目录 系统 脚本 领域 处理 管理 运行 接下来 事实 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 广州紫鲸互联网科技有限公司 互联网佳科技有限公司 没上市的科技互联网公司 麻工互联网科技 互联网金融与金融科技 互联网 科技创新 上海万想互联网科技 互联网科技英文翻译 互联网科技宣传片 左右互联网络科技 天扬科技互联网广告 团飞科技与伯堂互联网服务平台 南平创想时代互联网科技有限公司 内蒙古九一互联网科技 世界互联网领先科技成果获奖 山东子淼互联网科技有限公司 互联网科技实习生岗位 广东工业互联网大赛深圳学泰科技 卡尔迅互联网科技有限公司 中智农互联网科技 新浪科技互联网 小米互联网科技园设置 阿里互联网科技公司 南平创想时代互联网科技有限公司 互联网企业科技类企业如何做账 互联网科技实习生岗位 郑州欣桑互联网科技有限公司 扫呗互联网科技有限公司 三亚科技创新互联网基地
0