centos7にpythonやpipを入れる
centos7にepelを使う
以下のコマンドでepelをいれることができる。このepelを使ってpithon,pipを入れていく。各コマンドはrootユーザ出ない場合、sudoを付け加えること。
参考:https://cjsawer.whitewillow.co.uk/2018/08/29/epel-python-3-6-with-pip-on-centos-7/
yum install epel-release
# Install Python 3.6 yum install python36 # Install Pip from the RPM's internal "ensurepip" module python3.6 -m ensurepip # Symlink pip3 into /usr/bin for consistency and ease of use with sudo ln -s /usr/local/bin/pip3 /usr/bin/pip3
epelの場合pythonを起動するときはpython36として起動する。
ちなみにiusの場合はpython3.6として起動する。
epelをいれる理由
centos7では保守的なリポジトリで構成されているので、使いたいソフトウェアが入っていないことが多い。centos7に相性の良いリポジトリの一つがepelである。epelをインストールすると、もともとインストールできなかったソフトウエアをyumで実現できるようになる。
epelについて
epelについての情報:https://fedoraproject.org/wiki/About_EPEL/ja
epelはfedoraで使っている環境(パッケージ)をcentosなどの互換ディストリビューションでも使えるようにすることが目的のようだ。
epel以外のpython,pipをcentosに入れる方法は?
レポジトリとしてius,PostgreSQLの公式レポジトリ,remiがepel以外にあるようだ。
PostgreSQLの公式レポジトリ:https://yum.postgresql.org/
https://xn--o9j8h1c9hb5756dt0ua226amc1a.com/?p=3196
yum install https://centos7.iuscommunity.org/ius-release.rpm
yum info python36u
pipは別なのでpipもインストールする
yum install python36u python36u-pip python36u-devel
pipのバージョンが古いのでアップグレードしておく。rootにユーザーを変える必要ある。sudoでもできるか??
# pip3.6 install --upgrade pip
rootにしておかないとpipのアップグレードでエラーが起きてしまうので注意しておくこと。エラー内容は、PermissionError: [Errno 13] Permission denied: '/usr/bin/pip3.6'がでる。コマンドは
$ python3.6 -m pip install --upgrade pip
どうやらpermission deniedとなっているこのエラーは、管理者権限に関するエラーのようだ。
参考:https://teratail.com/questions/142008#reply-214645
https://teratail.com/questions/179746#reply-267445