我正在尝试设置 CMS(可在此处找到这里) 在 Ubuntu 16.04 32 位上。
我对 Ubuntu 完全是菜鸟,所以我想问问你们,如果有人能指导我,我将不胜感激。
另外,请你们提供从 A 到 Z 的大量详细信息,因为我认为我无法独自解决 Ubuntu 问题。
答案1
直接复制自官方安装说明:
安装
依赖项和可用的编译器
[…]
Ubuntu
在 Ubuntu 16.04 上,需要运行以下脚本来满足所有依赖关系:
# Feel free to change OpenJDK packages with your preferred JDK. sudo apt-get install build-essential openjdk-8-jre openjdk-8-jdk fpc postgresql postgresql-client gettext python2.7 iso-codes shared-mime-info stl-manual cgroup-lite # Only if you are going to use pip/virtualenv to install python dependencies sudo apt-get install python-dev libpq-dev libcups2-dev byaml-dev libffi-dev python-pip # Optional sudo apt-get install nginx-full php7.0-cli php5-fpm phppgadmin texlive-latex-base a2ps gcj-jdk haskell-platform
准备步骤
下载内容管理系统从 GitHub 下载 1.3.rc0 作为存档,然后将其解压到您的文件系统中。然后您应该使用终端访问 cms 文件夹。
警告:如果你决定使用存储库而不是下载存档,并且在克隆时
git clone
没有使用该选项,那么--recursive
你需要发出以下命令来获取沙箱的源代码:git submodule update --init
为了运行 CMS,需要执行一些准备步骤(例如安装沙箱、编译本地化文件、创建
cmsuser
等等)。您可以手动完成所有这些步骤,也可以运行以下命令:sudo ./prerequisites.py install
cmsuser
如果您在询问时回答,此脚本会将您添加到组中Y
。如果您想自己处理您的组,请回答N
然后运行:sudo usermod -a -G cmsuser <your user>
您可以通过发出以下命令来验证是否在该组中:
groups
请记住注销,以使更改生效。
警告:组中的用户
cmsuser
将能够isolate
以 root 权限启动该程序。他们可以利用这一点来获得 root 权限。因此,必须确保组中没有不受信任的用户cmsuser
。安装 CMS 及其 Python 依赖项
有多种方法可以安装 CMS 及其 Python 依赖项:
方法一:使用pip全局安装
有充分的理由通过 pip(Python 软件包索引)而不是软件包管理器(例如 apt-get)来安装 CMS 及其 Python 依赖项。例如:两个不同的 Linux 发行版(或同一发行版的两个不同版本)可能提供两个不同版本
python-sqlalchemy
。使用 pip 时,您可以选择安装具体版本已知sqlalchemy
可以与 CMS 正确配合使用。假设您已经
pip
安装,您可以执行以下操作:sudo pip2 install -r requirements.txt sudo python2 setup.py install
此命令全局安装 Python 依赖项。请注意,在某些发行版(如 Arch Linux)上,这可能会干扰系统包管理器。如果您想在主文件夹中执行安装,则可以执行以下操作:
pip2 install --user -r requirements.txt python2 setup.py install --user
方法 2:虚拟环境
警告:执行安装的另一种方法是使用虚拟环境,这是一个独立的 Python 环境,您可以将其放置在任何位置,并且可以随意激活/停用。创建虚拟环境所需的工具称为
virtualenv
,可以virtualenv
使用 Linux 发行版的包管理器查找来安装。例如:
- Ubuntu 14.x:python-virtualenv。
- Ubuntu 16.x:虚拟环境。
安装后
virtualenv
,您需要在文件系统的某个位置创建一个虚拟环境。例如,假设您决定在主目录下创建它(作为~/cms_venv
):virtualenv -p python2 ~/cms_venv
要激活它:
source ~/cms_venv/bin/activate
激活后,该
pip
命令将总是可用(即使它不是全局可用的,例如因为您没有安装它)。通常,每个 python 命令(python、pip)都会引用其相应的虚拟版本。因此,您可以通过发出以下命令来安装 python 依赖项:pip install -r requirements.txt python setup.py install
注意:使用完 CMS 后,您可以通过以下命令停用虚拟环境:
deactivate
方法 3:
apt-get
在 Ubuntu 上使用警告:通常可以使用 Linux 发行版的包管理器安装 Python 依赖项。但是,请记住,每个包的版本都由包维护者控制,并且对于 CMS 来说可能太新或太旧。在 Ubuntu 上,通常情况并非如此因为我们尝试在当前 LTS 版本可用的 Python 包上进行构建。
要在 Ubuntu 上安装 CMS 及其 Python 依赖项,您可以发出以下命令:
sudo python setup.py install sudo apt-get install python-setuptools python-tornado python-psycopg2 python-sqlalchemy python-psutil python-netifaces python-crypto python-tz python-six python-beautifulsoup python-mechanize python-coverage python-mock python-requests python-werkzeug python-gevent python-bcrypt python-chardet patool # Optional. sudo apt-get install python-yaml python-sphinx python-cups python-pypdf2
运行未安装的 CMS
要运行 CMS 而不将其安装在系统中,您首先需要建立先决条件:
./prerequisites.py build
在这种情况下,仍有几个步骤需要手动完成。首先,将 CMS 和isolate 添加到路径并创建配置文件:
export PATH=$PATH:./isolate/ export PYTHONPATH=./ cp config/cms.conf.sample config/cms.conf cp config/cms.ranking.conf.sample config/cms.ranking.conf
其次,执行这些任务(需要 root 权限):
- 创建
cmsuser
同名的用户和组;- 将您的用户添加到
cmsuser
组中;- 将isolate设置为由root:cmsuser拥有,并设置其suid位。
例如:
sudo useradd cmsuser sudo usermod -a -G cmsuser <your user> sudo chown root:cmsuser ./isolate/isolate sudo chmod u+s ./isolate/isolate
更新 CMS
随着 CMS 的发展,它用于表示数据的数据库模式可能会更新,并且新版本可能会引入与旧版本不兼容的更改。
为了保留数据库中存储的数据,您需要使用以下命令将其转储到文件系统上
cmsDumpExporter
更新 CMS 之前(即与旧版本)。然后,您可以通过运行以下命令来更新 CMS 并重置数据库模式:
cmsDropDB cmsInitDB
要将以前的数据重新加载到数据库中,您可以使用
cmsDumpImporter
:它将自动动态调整数据模型(您可以使用将cmsDumpUpdater
更新后的版本存储回磁盘并加快未来的导入速度)。