Linux ===== The installation instructions depend on your particular operating system and package manager. If you happen to know exactly what you are doing, you can also simply ensure that your system has: - a reasonably recent version of Python 3 (3.8 or above), - with working Cairo bindings in the form of `pycairo `__, - FFmpeg accessible from the command line as ``ffmpeg``, - and `Pango `__ headers. Then, installing Manim is just a matter of running: .. code-block:: bash pip3 install manim .. note:: In light of the current efforts of migrating to rendering via OpenGL, this list might be incomplete. Please `let us know ` if you ran into missing dependencies while installing. In any case, we have also compiled instructions for several common combinations of operating systems and package managers below. Required Dependencies --------------------- apt – Ubuntu / Mint / Debian **************************** To first update your sources, and then install Cairo, Pango, and FFmpeg simply run: .. code-block:: bash sudo apt update sudo apt install build-essential python3-dev libcairo2-dev libpango1.0-dev ffmpeg If you don't have python3-pip installed, install it via: .. code-block:: bash sudo apt install python3-pip Then, to install Manim, run: .. code-block:: bash pip3 install manim Continue by reading the :ref:`optional dependencies ` section. dnf – Fedora / CentOS / RHEL **************************** To install Cairo and Pango: .. code-block:: bash sudo dnf install cairo-devel pango-devel In order to successfully build the ``pycairo`` wheel, you will also need the Python development headers: .. code-block:: bash sudo dnf install python3-devel FFmpeg is only available via the RPMfusion repository which you have to configure first – please consult https://rpmfusion.org/Configuration/ for instructions. Then, install FFmpeg: .. code-block:: bash sudo dnf install ffmpeg At this point you have all required dependencies and can install Manim by running: .. code-block:: bash pip3 install manim Continue by reading the :ref:`optional dependencies ` section. pacman – Arch / Manjaro *********************** .. tip:: Thanks to *groctel*, there is a `dedicated Manim package on the AUR! ` If you don't want to use the packaged version from AUR, here is what you need to do manually: Update your package sources, then install Cairo, Pango, and FFmpeg: .. code-block:: bash sudo pacman -Syu sudo pacman -S cairo pango ffmpeg If you don't have ``python-pip`` installed, get it by running: .. code-block:: bash sudo pacman -S python-pip then simply install Manim via: .. code-block:: bash pip3 install manim Continue by reading the :ref:`optional dependencies ` section. .. _linux-optional-dependencies: Optional Dependencies --------------------- In order to make use of Manim's interface to LaTeX for, e.g., rendering equations, LaTeX has to be installed as well. Note that this is an optional dependency: if you don't intend to use LaTeX, you don't have to install it. You can use whichever LaTeX distribution you like or whichever is easiest to install with your package manager. Usually, `TeX Live `__ is a good candidate if you don't care too much about disk space. For Debian-based systems (like Ubuntu), sufficient LaTeX dependencies can be installed by running: .. code-block:: bash sudo apt install texlive texlive-latex-extra For Fedora (see `docs `__): .. code-block:: bash sudo dnf install texlive-scheme-full Should you choose to work with some smaller TeX distribution like `TinyTeX `__ , the full list of LaTeX packages which Manim interacts with in some way (a subset might be sufficient for your particular application) is:: collection-basic amsmath babel-english cbfonts-fd cm-super ctex doublestroke dvisvgm everysel fontspec frcursive fundus-calligra gnu-freefont jknapltx latex-bin mathastext microtype ms physics preview ragged2e relsize rsfs setspace standalone tipa wasy wasysym xcolor xetex xkeyval Working with Manim ------------------ At this point, you should have a working installation of Manim, head over to our :doc:`Quickstart Tutorial <../tutorials/quickstart>` to learn how to make your own *Manimations*!