申込→公開10.Python 2.7.3 インストール / make install

プログラミング言語Python

概要

 状態:-  閲覧数:1,314  投稿日:2013-04-05  更新日:2017-12-28
ソースから自分でビルドして自分でインストール

cd -tmp
wget …
解凍
./configure
make
sudo make install



手順
cd /var/tmp
wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar xvzf Python-2.7.3.tgz
cd Python-2.7.3
./configure
make
sudo make install
python --version


ダウンロード

 閲覧数:350 投稿日:2013-04-05 更新日:2017-05-11 

前提


・予め、Pythonは入っている
・バージョンが若干古いので、新しい「2.7.3」を入れる
※3系ではなく2系を選択した理由は、単に動画がそうしていたから

現在バージョンを確認
$ python --version
Python 2.6.6



ダウンロード


Python公式サイト
「Python 2.7.3 compressed source tarball (for Linux, Unix or Mac OS X)」、右クリック後、リンクアドレスをコピー

移動後ダウンロード
※「cd /var/tmp」「cd /tmp」違いは後述
$ wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
--2013-04-05 17:39:07--  http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz
www.python.org をDNSに問いあわせています... 82.94.164.162, 2001:888:2000:d::a2
www.python.org|82.94.164.162|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 14135620 (13M) [application/x-tar]
`Python-2.7.3.tgz' に保存中

100%[============================================>] 14,135,620  3.21M/s 時間 6.0s    

2013-04-05 17:39:13 (2.26 MB/s) - `Python-2.7.3.tgz' へ保存完了 [14135620/14135620]

$


解凍 → 「make install」

 閲覧数:381 投稿日:2013-04-05 更新日:2017-05-11 

解凍


$ tar xvzf Python-2.7.3.tgz
Python-2.7.3/
Python-2.7.3/PC/
Python-2.7.3/PC/py.ico
Python-2.7.3/PC/testpy.py
Python-2.7.3/PC/pyconfig.h
Python-2.7.3/PC/_msi.c
Python-2.7.3/PC/pyc.ico
Python-2.7.3/PC/icons.mak
Python-2.7.3/PC/frozen_dllmain.c
Python-2.7.3/PC/winsound.c

(中略)

Python-2.7.3/Mac/Demo/example0.html
Python-2.7.3/Mac/Demo/applescript.html
Python-2.7.3/Mac/Demo/example1/
Python-2.7.3/Mac/Demo/example1/dnslookup-1.gif
Python-2.7.3/Mac/Demo/example1/dnslookup-1.rsrc
Python-2.7.3/Mac/Demo/example1/dnslookup-1.py
Python-2.7.3/Mac/Demo/sound/
Python-2.7.3/Mac/Demo/sound/morselib.py
Python-2.7.3/Mac/Demo/sound/playaiff.py
Python-2.7.3/Mac/Demo/sound/morse.py
$



configure


configureとは?
・コンパイルに必要なヘッダファイルやライブラリ、そしてシステムコールや関数が存在しているかなどを自動的に調べ、それらの情報をもとにおよそ適切な(チェック状況を記述した)Makefile を作成するシェルスクリプト
$ cd Python-2.7.3
$

$ ./configure
checking for --enable-universalsdk... no
checking for --with-universal-archs... 32-bit
checking MACHDEP... linux2
checking EXTRAPLATDIR...
checking machine type as reported by uname -m... x86_64
checking for --without-gcc... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...

(中略)

checking for build directories... done
configure: creating ./config.status
config.status: creating Makefile.pre
config.status: creating Modules/Setup.config
config.status: creating Misc/python.pc
config.status: creating Modules/ld_so_aix
config.status: creating pyconfig.h
creating Modules/Setup
creating Modules/Setup.local
creating Makefile
$



make


makeとは?
・「configure」の実施により作成された「Makefile」を元に、ソースファイルのコンパイルを行うこと
・コンパイル時にエラーが表示されなければ、次の「make install」へ進むことが出来る
・逆にエラーが表示された場合は、内容確認の上「configure」実行時に必要なパラメータが不足していないか再度チェック
$ make
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Modules/python.o ./Modules/python.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/acceler.o Parser/acceler.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/grammar1.o Parser/grammar1.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/listnode.o Parser/listnode.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/node.o Parser/node.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/parser.o Parser/parser.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/parsetok.o Parser/parsetok.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/bitset.o Parser/bitset.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/metagrammar.o Parser/metagrammar.c
gcc -pthread -c -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes  -I. -IInclude -I./Include   -DPy_BUILD_CORE -o Parser/firstsets.o Parser/firstsets.c

(中略)

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _curses            _curses_panel  
_tkinter           bsddb185           bz2            
dbm                dl                 gdbm            
imageop            readline           sunaudiodev    
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

running build_scripts
creating build/scripts-2.7
copying and adjusting /var/tmp/Python-2.7.3/Tools/scripts/pydoc -> build/scripts-2.7
copying and adjusting /var/tmp/Python-2.7.3/Tools/scripts/idle -> build/scripts-2.7
copying and adjusting /var/tmp/Python-2.7.3/Tools/scripts/2to3 -> build/scripts-2.7
copying and adjusting /var/tmp/Python-2.7.3/Lib/smtpd.py -> build/scripts-2.7
changing mode of build/scripts-2.7/pydoc from 664 to 775
changing mode of build/scripts-2.7/idle from 664 to 775
changing mode of build/scripts-2.7/2to3 from 664 to 775
changing mode of build/scripts-2.7/smtpd.py from 664 to 775
/usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python-gdb.py
$


make install


インストール
※インストール作業は一般的に「root」ユーザーにて実施
$ sudo make install
/usr/bin/install -c python /usr/local/bin/python2.7
if test -f libpython2.7.a; then \
               if test -n "" ; then \
                       /usr/bin/install -c -m 555  /usr/local/bin; \
               else \
                       /usr/bin/install -c -m 555 libpython2.7.a /usr/local/lib/libpython2.7.a; \
                       if test libpython2.7.a != libpython2.7.a; then \
                               (cd /usr/local/lib; ln -sf libpython2.7.a libpython2.7.a) \
                       fi \
               fi; \
       else    true; \
       fi
running build
running build_ext
INFO: Can't locate Tcl/Tk libs and/or headers

Python build finished, but the necessary bits to build these modules were not found:
_bsddb             _curses            _curses_panel  
_tkinter           bsddb185           bz2            
dbm                dl                 gdbm            
imageop            readline           sunaudiodev    
To find the necessary bits, look in setup.py in detect_modules() for the module's name.

running build_scripts
Creating directory /usr/local/lib/python2.7
Creating directory /usr/local/lib/python2.7/lib-tk
Creating directory /usr/local/lib/python2.7/lib-tk/test
Creating directory /usr/local/lib/python2.7/lib-tk/test/test_tkinter
Creating directory /usr/local/lib/python2.7/lib-tk/test/test_ttk
Creating directory /usr/local/lib/python2.7/site-packages
Creating directory /usr/local/lib/python2.7/test
Creating directory /usr/local/lib/python2.7/test/data
Creating directory /usr/local/lib/python2.7/test/cjkencodings

(中略)

changing mode of /usr/local/lib/python2.7/lib-dynload/datetime.so to 755
changing mode of /usr/local/lib/python2.7/lib-dynload/ to 755
running install_scripts
copying build/scripts-2.7/2to3 -> /usr/local/bin
copying build/scripts-2.7/smtpd.py -> /usr/local/bin
copying build/scripts-2.7/idle -> /usr/local/bin
copying build/scripts-2.7/pydoc -> /usr/local/bin
changing mode of /usr/local/bin/2to3 to 775
changing mode of /usr/local/bin/smtpd.py to 775
changing mode of /usr/local/bin/idle to 775
changing mode of /usr/local/bin/pydoc to 775
running install_egg_info
Writing /usr/local/lib/python2.7/lib-dynload/Python-2.7.3-py2.7.egg-info
if test -f /usr/local/bin/python -o -h /usr/local/bin/python; \
       then rm -f /usr/local/bin/python; \
       else true; \
       fi
(cd /usr/local/bin; ln -s python2 python)
rm -f /usr/local/bin/python2
(cd /usr/local/bin; ln -s python2.7 python2)
rm -f /usr/local/bin/python2-config
(cd /usr/local/bin; ln -s python2.7-config python2-config)
rm -f /usr/local/bin/python-config
(cd /usr/local/bin; ln -s python2-config python-config)
test -d /usr/local/lib/pkgconfig || /usr/bin/install -c -d -m 755 /usr/local/lib/pkgconfig
rm -f /usr/local/lib/pkgconfig/python2.pc
(cd /usr/local/lib/pkgconfig; ln -s python-2.7.pc python2.pc)
rm -f /usr/local/lib/pkgconfig/python.pc
(cd /usr/local/lib/pkgconfig; ln -s python2.pc python.pc)
/usr/bin/install -c -m 644 ./Misc/python.man \
               /usr/local/share/man/man1/python2.7.1


バージョン確認

 閲覧数:322 投稿日:2013-04-05 更新日:2017-05-11 

バージョン確認


現時点
$ python --version
Python 2.6.6
$

・この時点ではまだ変更が反映されていない

一旦ログアウト後、再度確認
exit

$ python --version
Python 2.7.3
$

・反映確認された!

「cd /var/tmp」「cd /tmp」違い

 閲覧数:961 投稿日:2013-04-05 更新日:2017-12-28 

前提


・「何れのディレクトリにある一時ファイル」も、一定時間アクセスがない場合、cronによって削除される


最大の違い


「cronによって定期的に削除されるタイミング」が異なる
/tmp … 240時間アクセスされていないファイル削除
/var/tmp … 720時間アクセスされていないファイル削除
・今回のケースで言えば、多分、どちらを利用しても良い
・運用ルールをどうするか、の問題


ディレクトリ構成


・ルートディレクトリ/tmp
・ルートディレクトリ/var/tmp

cd /
[@★★ /]$ ls -a
.          .autorelabel        boot  home   lost+found  opt   sbin     sys  var
..         .readahead_collect  dev   lib    media       proc  selinux  tmp
.autofsck  bin                 etc   lib64  mnt         root  srv      usr

cd /var
[@★★ var]$ ls -a
.   account  crash  db     games  local  log   nis  preserve  spool  www
..  cache    cvs    empty  lib    lock   mail  opt  run       tmp    yp

cd /var/tmp
[@★★ tmp]$ ls -a
.  ..  Python-2.7.3  Python-2.7.3.tgz  Python-3.3.0.tgz

cd /tmp
[@★★ tmp]$ ls -a
.  ..  .ICE-unix  ssh-jevpG28691


申込→公開11.MongoDBインストール&設定



Beautiful Soup 4.1.3 / yum install



週間人気ページランキング / 9-14 → 9-20
順位 ページタイトル抜粋 アクセス数
1 PHPのmb_send_mail関数でメール送信できない | メール処理システム 29
2 Nginx設定。エラーログレベル | Nginx(Webサーバ) 21
3 Python 3.5 アンインストール / yum remove | Python(プログラミング言語) 11
4 FFmpeg 2.8.15 を yum インストール | ソフトウェアスイート 10
5 PHP実行ユーザ設定 / CentOS6 / Apache | PHP(プログラミング言語) 9
6 PHP Version 7.1.2 php-mecabエクステンション対応 / PHP 7.0.14 からのアップグレード  | MeCab(形態素解析) 8
6 ソースからビルドしたPython 2.7.3 アンインストール失敗 | Python(プログラミング言語) 8
7 touch コマンド / viコマンド。新規ファイル作成時の違い | Linuxコマンド 7
7 さくらVPS0 7
8 9回目-13.MySQL5.7.21設定 | CentOS 7 2週間無料のお試し期間 9回目(さくらVPS) 6
8 「設定ファイルに、暗号化 (blowfish_secret) 用の非公開パスフレーズの設定を必要とするようになりました。」対応 6
9 PHPファイルでchmodエラー | PHP(プログラミング言語) 5
9 設定 2019/1/22 / 一般ユーザがmailコマンドでメール送信 / 管理者がmailコマンドでメール送信 5
10 Postfix | メール処理システム 4
10 CentOSでcpコマンド動作確認するためには、Control + T ではなく、 -v オプションを使用 | cp(Linuxコマンド) 4
10 499 (Request has been forbidden by antivirus) | HTTP(通信プロトコル) 4
10 tar | Linuxコマンド 4
10 Python 3.6 インストール / make altinstall | Python(プログラミング言語) 4
10 「CentOS6」から「CentOS7」への移行 | CentOS 7 (CentOS) 4
10 echo と cat の違い 4
2021/9/21 1:01 更新