= DRM4G Installation = There are several ways in which you can install DRM4G. == pip == The easiest way would be to install it using the command `pip install drm4g`. To check if you have this tool installed just open a terminal and execute `which pip`. If you have it installed you'll see something like this: {{{ #!sh $ which pip /usr/bin/pip }}} {{{#!comment which pip or pip -V? }}} In the case you don't have it, follow the instructions shown in their [[https://pip.pypa.io/en/stable/installing/|documentation page]]. * '''With root authorization''': You can go ahead and run `sudo pip install drm4g` * '''In a [https://virtualenv.pypa.io/en/stable/| virtual environment]''': Just run `pip install drm4g` * '''Without root authorization''': Run `pip install drm4g --user` {{{#!comment - I'm not sure if I should use "authorization", "permissions", "privileges",... - I wrote "sudo" when doing the installation, but in some OS it's "su", should I write both or explain somewhere that this is being done in ubuntu and that it could be a bit different in others? }}} === Install in custom directory === #customInstall Sometimes you will want to specify a certain directory in which to install DRM4G. To do that you'll have to bear in mind a couple of details. The installation command would have to be: {{{ #!sh $ pip install drm4g --install-option="--prefix=/your/path" -v }}} or {{{ #!sh $ pip install drm4g --install-option="--home=/your/path" -v }}} This will install your binary files and libraries under the specified path, but DRM4G will still not be able to run. * You want your system to be aware of where the DRM4G package is, so that python may be able to import it. You'll have to define the environment variable '''$PYTHONPATH''', which will have to point to the library folder under the path you chose. At the end of the installation, you'll se a message that will inform you on how to do that. * The next step is to have it know that DRM4G has been installed. You'll have to make sure that the directory you choose is added in your environment variable '''$PATH''' or you could have it added to your '''sys.path'''. The folder we are interested in is the "''bin''" folder inside your directory. During the installation, you will be prompted with a question about modifying your '''.profile''' or '''.bashrc''' file. If you accept, you will only have to define these two environment variables the first time. * Alternatively you can access the file yourself, which is under the home directory, and make the necessary changes. Finally, if you wish to define where your configuration and log files will be created, before starting DRM4G with `drm4g start` you should set the environment variable $DRM4G_DIR with whichever directory you wish. {{{#!comment This paragraph should maybe go in another section. Something called extras or something of the sort. }}} == Without pip == First and foremost you would have to make sure you have installed the necessary requirements. Those are '''Py''''''''''Crypto''', '''Paramiko''' and '''docopt'''. {{{ #!sh sudo apt-get update sudo apt-get install python-crypto sudo apt-get install python-paramiko sudo apt-get install python-docopt }}} {{{#!comment The idea of not using pip is to not add another "dependency", but doing it like this I'm "forcing" the user to have apt }}} Once that has been taken care of, you can download the source code from [[https://pypi.python.org/packages/33/67/99226fee402a4725fffefdd8d5102f4520175e60b349f53f734cd6836c2a/drm4g-2.5.0b1.tar.gz#md5=3bbbe1041212696ec0f951a3ec7f56f3|here]]. After you extract the package, in a terminal, head into the folder and run: * '''With root authorization''': `sudo python setup.py install` * '''In a virtual environment''': `python setup.py install` * '''Without root authorization''': `python setup.py install --user` === Install in custom directory === If you want to use a specific directory as the installation path, you can do it like this: {{{#!sh python setup.py install --prefix=/your/path }}} or {{{#!sh python setup.py install --home=/your/path }}} There are other considerations to have in mind, but they are the same as the ones explained [#customInstall above].