Invenio安装步骤(二) 傷城~ 2021-09-22 06:48 272阅读 0赞 这篇博客,我们将继续“Invenio安装步骤(一)”来讲解。 (一)对于不耐心的Invenio开发者的快速安装指令 这个安装过程是为Invenio的开发版本运行而定做的,对于产品安装需查看 [如何创造一个Invenio覆盖][Invenio] 文档。 1.1 安装 安装的第一步是下载Invenio开发版本以及Invenio具体网站。在主要的分支上这个开发版本已经完成。 $ mkdir -p $HOME/src $ cd $HOME/src/ $ export BRANCH=master $ git clone --branch $BRANCH git://github.com/inveniosoftware/invenio.git $ git clone --branch $BRANCH git://github.com/inveniosoftware/invenio-demosite.git 我们推荐使用虚拟环境([virtual environments][]),因此包可以就地安装,他会使你的安装变得简单。(invenio)$ 告诉你Invenio是有效的。 $ mkvirtualenv invenio (invenio)$ # we are in the invenio environment now and (invenio)$ # can leave it using the deactivate command. (invenio)$ deactivate $ # Now join it back, recreating it would fail. $ workon invenio (invenio)$ # That 让我们将Invenio以及Invenio Demosite放到我们刚刚创建的环境里面。 (invenio)$ cdvirtualenv (invenio)$ mkdir src (invenio)$ cd src (invenio)$ git-new-workdir $HOME/src/invenio/ invenio $BRANCH (invenio)$ git-new-workdir $HOME/src/invenio-demosite/ invenio-demosite $BRANCH 如果你不想使用git-new-workdir方式,你可以: (invenio)$ python setup.py compile_catalog * 创建一个符号连接 * 直接克隆存储仓库到虚拟环境 安装Invenio (invenio)$ cdvirtualenv src/invenio (invenio)$ pip install --process-dependency-links -e .[development] 有一些模块可能需要特定的依赖列表如extras。选择一个你需要的:例如增加图片支持,我们可以这么做。 (invenio)$ pip install -e .[img] 如果Invenio采用开发模式安装,你需要手动的进行编译翻译。 (invenio)$ python setup.py compile_catalog 注意:如果你安装的时候使用python setup.py 安装,翻译目录是自动编译。 正在安装的Invenio Demosite.exists action i 代表了忽略。它代表它会跳过先前已经安装的步骤。因为Invenio Demosite 安装依赖Invenio,如果不使用该命令,它将会尝试重新安装。如果你忽略它,pip命令将会询问你想要采取什么样的行动。 (invenio)$ cdvirtualenv src/invenio-demosite (invenio)$ pip install -r requirements.txt --exists-action i 通过bower命令安装必要的配置(例如javascript,css),当bower下载文件的时候, .bowerrc 文件也将会进行配置。 (invenio)$ inveniomanage bower -i bower-base.json > bower.json Generates or update bower.json for you. (invenio)$ cat .bowerrc { "directory": "invenio_demosite/base/static/vendors" } (invenio)$ bower install (invenio)$ ls invenio_demosite/base/static/vendors bootstrap ckeditor hogan jquery jquery-tokeninput jquery-ui plupload 我们建议你仅仅改变bower-base.json 以及根据需要重新生成bower.jsom。invenio.ext.assets.commands.bowercommand被捆绑的每个包,聚集了所有依赖。 最后一步,也将是最重要一步将整合所有资产,但它将在配置步骤之后进行。 2,配置 给你的安装生成秘钥 invenio)$ inveniomanage config create secret-key 如果你打算在多个环境中进行局部的开发,你将需要采取下面的步骤。 (invenio)$ inveniomanage config set CFG_EMAIL_BACKEND flask_email.backends.console.Mail (invenio)$ inveniomanage config set CFG_BIBSCHED_PROCESS_USER $USER (invenio)$ inveniomanage config set CFG_DATABASE_NAME $BRANCH (invenio)$ inveniomanage config set CFG_DATABASE_USER $BRANCH (invenio)$ inveniomanage config set CFG_SITE_URL http://localhost:4000 (invenio)$ inveniomanage config set CFG_SITE_SECURE_URL http://localhost:4000 通过使用不同的过滤器,对非开发模式的资产 进行结合和缩小,见([asset][])。如果路径变量没有在环境变量($path)里面写好,我们需要对二进制文件输入路径。 # Local installation (using package.json) (invenio)$ cdvirtualenv src/invenio (invenio)$ npm install (invenio)$ inveniomanage config set LESS_BIN `find $PWD/node_modules -iname lessc | head -1` (invenio)$ inveniomanage config set CLEANCSS_BIN `find $PWD/node_modules -iname cleancss | head -1` (invenio)$ inveniomanage config set REQUIREJS_BIN `find $PWD/node_modules -iname r.js | head -1` (invenio)$ inveniomanage config set UGLIFYJS_BIN `find $PWD/node_modules -iname uglifyjs | head -1` 在每一个Invenio模块或者外部的库中传播的资产(asset)将被整理成为实例目录。采用默认,它将产生原始文件的副本。作为一个开放着,你可能想要采用符号连接的方式。 # Developer only (invenio)$ inveniomanage config set COLLECT_STORAGE flask_collect.storage.link (invenio)$ inveniomanage collect ... Done collecting. (invenio)$ cdvirtualenv var/invenio.base-instance/static (invenio)$ ls -l css js vendors ... 3.开发 一旦你将所有的东西都安装完成,你需要创建一个数据库以及用演示数据来填充它。 (invenio)$ inveniomanage database init --user=root --password=$MYSQL_ROOT --yes-i-know (invenio)$ inveniomanage database create 现在你应该能运行开发的服务器,Invenio使用Celery以及Redis,它须依赖网络服务器的运行。 # make sure that redis is running $ sudo service redis-server status redis-server is running # or start it with start $ sudo service redis-server start # launch celery $ workon invenio (invenio)$ celery worker -E -A invenio.celery.celery --workdir=$VIRTUAL_ENV # in a new terminal $ workon invenio (invenio)$ inveniomanage runserver * Running on http://0.0.0.0:4000/ * Restarting with reloader 注:在OS X上,当启动Redis数据库服务的时候,service命令可能无法使用。需要如下命令: $ redis-server 处理问题:作为一个开发者,你可能想要使用带有 [Honcho][]的Procfile。它可以一次很好的开启所有服务。使用缺省设置,它将运行 [flower][],提供一个网络接口来监视Celery任务。 (invenio)$ pip install honcho flower (invenio)$ cdvirtualenv src/invenio (invenio)$ honcho start 当所有服务运行的时候,可以上传演示数据。 $ # in a new terminal $ workon invenio (invenio)$ inveniomanage demosite populate --packages=invenio_demosite.base 你现在就可以打开你喜欢的浏览器,输入 [http://0.0.0.0:4000/][http_0.0.0.0_4000]。 视情况,如果你使用Base shell来完成,你可能需要对于Inveniomanage登记参数的完整。 eval "$(register-python-argcomplete inveniomanage)" 所有步骤到此结束。 [Invenio]: http://invenio.readthedocs.io/en/stable/getting-started/first-steps.html [virtual environments]: https://virtualenv.pypa.io/en/stable/ [asset]: http://invenio.readthedocs.io/en/stable/ext/assets.html#ext-assets [Honcho]: https://pypi.python.org/pypi/honcho [flower]: https://pypi.python.org/pypi/flower [http_0.0.0.0_4000]: http://0.0.0.0:4000/
还没有评论,来说两句吧...