Markdown plugin doesn't install in a Bitnami Lilac VM

I downloaded the Bitnami Lilac VM from here. I tried to install the Markdown plugin but I got some permissions errors which I tried working around by using sudo, but that gave me a different warning

bitnami@debian:~$ pip install git+https://github.com/citynetwork/markdown-xblock.git
Collecting git+https://github.com/citynetwork/markdown-xblock.git
  Cloning https://github.com/citynetwork/markdown-xblock.git to /tmp/pip-req-build-rcj8ico8
  Running command git clone -q https://github.com/citynetwork/markdown-xblock.git /tmp/pip-req-build-rcj8ico8
Collecting XBlock
  Downloading XBlock-1.5.1-py3-none-any.whl (112 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 112 kB 13.7 MB/s 
Collecting markdown2>=2.3.9
  Downloading markdown2-2.4.1-py2.py3-none-any.whl (34 kB)
Requirement already satisfied: Pygments>=2.0.1 in /opt/bitnami/python/lib/python3.8/site-packages/Pygments-2.10.0-py3.8.egg (from markdown-xblock==1.1.0) (2.10.0)
Requirement already satisfied: pyyaml in /opt/bitnami/python/lib/python3.8/site-packages/PyYAML-5.4-py3.8-linux-x86_64.egg (from XBlock->markdown-xblock==1.1.0) (5.4)
Collecting fs
  Downloading fs-2.4.13-py2.py3-none-any.whl (131 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 131 kB 28.7 MB/s 
Requirement already satisfied: pytz in /opt/bitnami/python/lib/python3.8/site-packages/pytz-2021.1-py3.8.egg (from XBlock->markdown-xblock==1.1.0) (2021.1)
Collecting python-dateutil
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 247 kB 18.8 MB/s 
Collecting web-fragments
  Downloading web_fragments-1.1.0-py2.py3-none-any.whl (15 kB)
Collecting webob
  Downloading WebOb-1.8.7-py2.py3-none-any.whl (114 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 114 kB 32.7 MB/s 
Requirement already satisfied: markupsafe in /opt/bitnami/python/lib/python3.8/site-packages/MarkupSafe-1.1.0-py3.8-linux-x86_64.egg (from XBlock->markdown-xblock==1.1.0) (1.1.0)
Collecting lxml
  Downloading lxml-4.6.3-cp38-cp38-manylinux2014_x86_64.whl (6.8 MB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 6.8 MB 38.3 MB/s 
Collecting appdirs~=1.4.3
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: setuptools in /opt/bitnami/python/lib/python3.8/site-packages (from fs->XBlock->markdown-xblock==1.1.0) (56.0.0)
Requirement already satisfied: six~=1.10 in /opt/bitnami/python/lib/python3.8/site-packages/six-1.16.0-py3.8.egg (from fs->XBlock->markdown-xblock==1.1.0) (1.16.0)
Using legacy 'setup.py install' for markdown-xblock, since package 'wheel' is not installed.
Installing collected packages: appdirs, webob, web-fragments, python-dateutil, lxml, fs, XBlock, markdown2, markdown-xblock
ERROR: Could not install packages due to an OSError: [Errno 13] Permission denied: '/opt/bitnami/python/lib/python3.8/site-packages/appdirs.py'
Consider using the `--user` option or check the permissions.

bitnami@debian:~$ sudo pip install git+https://github.com/citynetwork/markdown-xblock.git
Collecting git+https://github.com/citynetwork/markdown-xblock.git
  Cloning https://github.com/citynetwork/markdown-xblock.git to /tmp/pip-req-build-de8dz1dc
  Running command git clone -q https://github.com/citynetwork/markdown-xblock.git /tmp/pip-req-build-de8dz1dc
Collecting XBlock
  Downloading XBlock-1.5.1-py3-none-any.whl (112 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 112 kB 12.5 MB/s 
Collecting markdown2>=2.3.9
  Downloading markdown2-2.4.1-py2.py3-none-any.whl (34 kB)
Requirement already satisfied: Pygments>=2.0.1 in /opt/bitnami/python/lib/python3.8/site-packages/Pygments-2.10.0-py3.8.egg (from markdown-xblock==1.1.0) (2.10.0)
Collecting fs
  Downloading fs-2.4.13-py2.py3-none-any.whl (131 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 131 kB 35.4 MB/s 
Requirement already satisfied: markupsafe in /opt/bitnami/python/lib/python3.8/site-packages/MarkupSafe-1.1.0-py3.8-linux-x86_64.egg (from XBlock->markdown-xblock==1.1.0) (1.1.0)
Requirement already satisfied: pyyaml in /opt/bitnami/python/lib/python3.8/site-packages/PyYAML-5.4-py3.8-linux-x86_64.egg (from XBlock->markdown-xblock==1.1.0) (5.4)
Requirement already satisfied: pytz in /opt/bitnami/python/lib/python3.8/site-packages/pytz-2021.1-py3.8.egg (from XBlock->markdown-xblock==1.1.0) (2021.1)
Collecting webob
  Downloading WebOb-1.8.7-py2.py3-none-any.whl (114 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 114 kB 27.2 MB/s 
Collecting python-dateutil
  Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 247 kB 30.9 MB/s 
Collecting web-fragments
  Downloading web_fragments-1.1.0-py2.py3-none-any.whl (15 kB)
Collecting lxml
  Downloading lxml-4.6.3-cp38-cp38-manylinux2014_x86_64.whl (6.8 MB)
     |β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ| 6.8 MB 18.7 MB/s 
Collecting appdirs~=1.4.3
  Downloading appdirs-1.4.4-py2.py3-none-any.whl (9.6 kB)
Requirement already satisfied: setuptools in /opt/bitnami/python/lib/python3.8/site-packages (from fs->XBlock->markdown-xblock==1.1.0) (56.0.0)
Requirement already satisfied: six~=1.10 in /opt/bitnami/python/lib/python3.8/site-packages/six-1.16.0-py3.8.egg (from fs->XBlock->markdown-xblock==1.1.0) (1.16.0)
Using legacy 'setup.py install' for markdown-xblock, since package 'wheel' is not installed.
Installing collected packages: appdirs, webob, web-fragments, python-dateutil, lxml, fs, XBlock, markdown2, markdown-xblock
    Running setup.py install for markdown-xblock ... done
Successfully installed XBlock-1.5.1 appdirs-1.4.4 fs-2.4.13 lxml-4.6.3 markdown-xblock-1.1.0 markdown2-2.4.1 python-dateutil-2.8.2 web-fragments-1.1.0 webob-1.8.7
WARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv

(Note regarding the first error: apparently /opt/bitnami/python/lib/python3.8/site-packages/ and all the stuff inside it is owned by root:root)

In the end, either way it wasn’t showing Markdown as an available plugin from the Advanced units menu. (I also reset the VM and tried β€œpip install markdown-xblock --user” which seemed to have no errors, but also didn’t show a working Markdown option under Advanced. (It was listed under the advanced course options, and 3/4 of the other advanced options showed up under Advanced for unit selection, just not Markdown.))

What’s the best way around the errors above?

cc @mrtmm

It turns out there’s a bitnami-specific set of steps which needs to be done in order to install XBlocks. And it’s documented here: https://docs.bitnami.com/general/apps/edx/configuration/enable-extension/. After I did those, the pip install worked fine.

1 Like