

When you install the software in a way that mixes custom installation methods on top of the system one, you’re asking for trouble! What to do instead What makes CentOS a Community Enterprise OS? It is packaging, of course! This is an easy example because there is an obvious failure in running certbot now.īut in other cases, you may not even notice the breakage, and things will just work in a weird way. You’ll have a hard time restoring things to a working state. We’ve created a mess of the machine by mixing Python modules from pip with Python modules/apps installed via system RPM packages. Why that is? Because we’ve brought in a newer version of the requests library that requires newer pyOpenSSL. ImportError: ‘pyOpenSSL’ module missing required functionality. What now? Your great new app is working fine, but the certbot IS BROKEN with an error message: Which would be equivalent to (attention, do not run! example only): sudo pip install -U requests The installation went through just fine, fetching and installing the newest version of the requests Python library. Little did you know that the app required a newer requests Python module. You went to its GitHub project package that wants you to install via pip.Īnd so you run pip install. Now say you have the itch to install the latest and greatest version of a Python app that is not available via yum.
INSTALL PIP3 CENTOS FREE
It is a program for generating free TLS certificates: sudo yum -y install epel-release Example of breakageįor the illustration, I’m going to install the certbot package. The result of running pip as root, would be a dirty mix of Python modules installed via yum package management, and pip installed Python modules. So when you invoke pip as root, it will more than likely overwrite Python modules that were installed via system packages. It has no idea about RPM format either, nor about what you already have installed through the system ( yum) packages. Now, pip is the installer/manager for Python modules available via PyPI.īut it has no idea whatsoever about your package manager. All the packaged software that depends on Python modules in one way or the other, will depend on the system-packaged Python modules. Python modules that are available through yum ( dnf) often serve as a base for the core OS functions like yum itself. You can simply install them as any other package, for example: sudo yum install python2-requests

You will find that many Python modules are available through the yum repositories as RPM packages, e.g.: For CentOS/RHEL/Fedora, it’s yum or dnf, and this is what we’ll touch in our examples. But their common feature is the package management system.įor Debian-based systems, that is apt.

Here, I’m going to touch on why not to run pip as root, give some examples on how it’s going to break things miserably, and what to do instead.Įach Linux/GNU distro is unique in some way.
