mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Debian 9 Stretch - Python 3.6 インストール(ソースビルド)!

[ サーバ構築 ] [ Debian, Linux, Python ]

こんばんは。

Debian GNU/Linux 9 Stretch に Python 3.6 をソースをビルドしてインストールする方法についての記録です。

以前古いバージョンでの作業時に残していた記録を参考に作業を行い、今回更新した作業記録を貼付する形式の内容となっています。
(当然ながら、興味がなければスルーしてください)

0. 前提条件

  • Debian GNU/Linux 9 (Stretch) での作業を想定。
  • クライアント側は LMDE2(Linux Mint Debian Edition 2)(64bit) を想定。
  • デフォルトでインストールされている Python 2.7.13, 3.5.3 はアンインストールせず、Python 3.6.3 をインストールし、 2.7.13 や 3.5.3 と共存させる。
    python, python3.5, python3.6 コマンドで使い分ける)
  • 「デフォルトでインストールされている Python をアンインストールすることはサーバ管理上悪影響を与えるので危険である」ということを理解しておく。

1. Python のバージョン確認

インストール済み(現状)の Python のバージョンを確認してみる。

1
2
3
4
5
# python -V
Python 2.7.13

# python3.5 -V
Python 3.5.3
  • --version オプションでもよい。
  • pythonpython2 でもよい。 (python2python にシンボリックリンクが張られているので)
  • python3.5python3 でもよい。 (python3python3.5 にシンボリックリンクが張られているので)

2. 必要パッケージのインストール

1
2
3
# apt install -y zlib1g-dev libssl-dev libreadline-dev \
libsqlite3-dev libbz2-dev libncurses5-dev libgdbm-dev liblzma-dev \
tk-dev zlibc

更に必要なものがある場合、make 後に出力されるメッセージで確認可能。(再度 make する必要があるが)
(開発に不要なものなら無視してもよいだろう)

3. アーカイブのダウンロード&展開

こちら から最新安定版(当記事執筆時点では 3.6.3)のアーカイブ(今回は tgz 版)をダウンロード・展開する。

1
2
3
# cd /usr/local/src
# wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz
# tar zxvf Python-3.6.3.tgz

4. ビルド&インストール

複数系統インストールすることも考慮して configure オプションで --prefix を指定している。(複数系統インストールすることを考慮しないのなら prefix は指定しなくてもよい)
また、あらゆるサイト等で紹介されている --enable-shared のオプションは、メリットがない(むしろ問題点がある)ので使用しない。

1
2
3
4
# cd  Python-3.6.3
# ./configure --prefix=/usr/local/python-3.6
# make
# make altinstall

make install だと既存の python3 を破壊してしまうかもしれないため、 make altinstallpython3.6 のみ生成するようにしている。

もし、ビルドソースに問題がないか等をテストしたければ、 make のあとで make test でチェックしてみるとよい。

5. 環境変数 PATH の設定

パスを通すために /etc/profile に以下のような記述を追加する。

/etc/profile
1
2
PATH=/usr/local/python-3.6/bin:$PATH
export PATH

そして、即時有効化。(再ログインでも可)

1
# source /etc/profile

root ユーザではなく一般ユーザに設定するなら “~/.bash_profile” に設定する。

もしくは、以下のようにシンボリックリンクを貼る方法でもよいだろう。

1
# ln -s /usr/local/python-3.6/bin/python3.6 /usr/local/bin/python3.6

6. インストールの確認

1
2
# python3.6 -V
Python 3.6.3

7. 動作確認

対話形式で確認してみる。(ユークリッドの互除法で再帰的に最大公約数を求めてみる)
(対話形式を終了するには CTRL-D

1
2
3
4
5
6
7
8
9
10
11
12
13
# python3.5
Python 3.6.3 (default, Nov 11 2017, 23:51:47)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> def gcd(a, b):
...     if b == 0:
...         return a
...     else:
...         return gcd(b, a % b)
...
>>> print("TheGCD for (123, 45): {}".format(gcd(123, 45)))
TheGCD for (123, 45): 3
>>>

上記と同じことをファイルを作成して実行してみる。

gcd.py
1
2
3
4
5
6
7
def gcd(a, b):
    if b == 0:
        return a
    else:
        return gcd(b, a % b)

print("TheGCD for (123, 45): {}".format(gcd(123, 45)))
1
2
# python3.6 gcd.py
The GCD for (123, 45): 3

8. 参考サイト


以上

Comments