diadia

興味があることをやってみる。独学で勉強しています。初心者から始めたので困ったことを書いて同じ境遇の方のヒントになればと思います。

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