Copiado diretamente das instruções de instalação oficiais :
% bl0ck_qu0te% Para executar o CMS, há algumas etapas de preparação para executar (como instalar o sandbox, compilar arquivos de localização, criar o cmsuser
e assim por diante). Você pode executar todas essas etapas manualmente ou executar o seguinte comando:
sudo ./prerequisites.py install
Este script adicionará você ao grupo cmsuser
se você responder Y
quando solicitado. Se você quiser gerenciar seus grupos sozinho, responda N
e execute:
sudo usermod -a -G cmsuser <your user>
Você pode verificar se está no grupo emitindo o comando:
groups
Lembre-se de efetuar logout para tornar a alteração efetiva.
% bl0ck_qu0te%Instalando o CMS e suas dependências Python
Existem várias maneiras de instalar o CMS e suas dependências Python:
Método 1: instalação global com pip
Existem boas razões para instalar o CMS e suas dependências Python via pip (Python Package Index) em vez de seu gerenciador de pacotes (por exemplo, apt-get). Por exemplo: duas distro diferentes do Linux (ou duas versões diferentes da mesma distro) podem oferecer duas versões diferentes de python-sqlalchemy
. Ao usar o pip, você pode optar por instalar uma versão específica de sqlalchemy
que funcione corretamente com o CMS.
Supondo que você tenha pip
instalado, você pode fazer isso:
sudo pip2 install -r requirements.txt
sudo python2 setup.py install
Esse comando instala dependências do python globalmente. Note que em algumas distros, como o Arch Linux, isso pode interferir no gerenciador de pacotes do sistema. Se você quiser realizar a instalação na sua pasta pessoal, você pode fazer isso:
pip2 install --user -r requirements.txt
python2 setup.py install --user
Método 2: ambiente virtual
% bl0ck_qu0te%- Ubuntu 14.x: python-virtualenv .
- Ubuntu 16.x: virtualenv .
Depois de instalar o virtualenv
, você precisará criar um ambiente virtual em algum lugar do sistema de arquivos. Por exemplo, vamos supor que você tenha decidido criá-lo em seu diretório pessoal (como ~/cms_venv
):
virtualenv -p python2 ~/cms_venv
Para ativá-lo:
source ~/cms_venv/bin/activate
Após a ativação, o comando pip
estará sempre disponível (mesmo que não esteja disponível globalmente, por exemplo, porque você não o instalou). Em geral, todo comando python (python, pip) se referirá a sua versão virtual correspondente. Então, você pode instalar dependências python emitindo:
pip install -r requirements.txt
python setup.py install
% bl0ck_qu0te%
Método 3: Usando apt-get
no Ubuntu
% bl0ck_qu0te%
Para instalar o CMS e suas dependências Python no Ubuntu, você pode emitir:
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
Executando o CMS não instalado
Para executar o CMS sem instalá-lo no sistema, você precisa primeiro criar os pré-requisitos:
./prerequisites.py build
Ainda há algumas etapas para concluir manualmente nesse caso. Primeiro, adicione o CMS e isole-o no caminho e crie os arquivos de configuração:
export PATH=$PATH:./isolate/
export PYTHONPATH=./
cp config/cms.conf.sample config/cms.conf
cp config/cms.ranking.conf.sample config/cms.ranking.conf
Em segundo lugar, execute estas tarefas (que exigem permissões de root):
- crie o usuário
cmsuser
e um grupo com o mesmo nome; - adicione seu usuário ao grupo
cmsuser
; - defina isolate como propriedade de root: cmsuser e defina seu bit suid.
Por exemplo:
sudo useradd cmsuser
sudo usermod -a -G cmsuser <your user>
sudo chown root:cmsuser ./isolate/isolate
sudo chmod u+s ./isolate/isolate
Atualizando o CMS
Conforme o CMS se desenvolve, o esquema do banco de dados usado para representar seus dados pode ser atualizado e novas versões podem introduzir alterações incompatíveis com versões mais antigas.
Para preservar os dados armazenados no banco de dados, é necessário despejá-lo no sistema de arquivos usando cmsDumpExporter
antes de atualizar o CMS (ou seja, com a versão antiga).
Você pode atualizar o CMS e redefinir o esquema do banco de dados executando:
cmsDropDB
cmsInitDB
Para carregar os dados anteriores de volta para o banco de dados, você pode usar cmsDumpImporter
: ele irá adaptar o modelo de dados automaticamente (você pode usar cmsDumpUpdater
para armazenar a versão atualizada de volta no disco e acelerar futuras importações).