安装

安装

我正在尝试设置 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 发行版的包管理器查找来安装。例如:

安装后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更新后的版本存储回磁盘并加快未来的导入速度)。

相关内容