Pythonソースのコンパイル
4432 ワード
なぜコンパイルできるのか
通常、Windowsの下にソフトウェアをインストールし、実行可能ファイルをダウンロードするだけで、
ソースコード、実行可能ファイルとは
ソースコードはプログラミング言語で作成されたプログラムで、実はテキストファイルで、テキストエディタで編集することができます.実行可能ファイルはオペレーティングシステムが認識するバイナリプログラムです.ソースコードを実行可能ファイルにするには、ソースコードを
C言語のコンパイラは
コンパイルはどのようなプロセスですか
ソフトウェアのソースコード(文書ドキュメント)+システムの既存の関数ライブラリ、コンパイラのコンパイルを経て、実行可能なファイル関数ライブラリを生成するのは何ですか?Pythonが多くの外部のモジュール/ライブラリを呼び出していくつかの機能を実現するように、ソフトウェアもシステムの関数でいくつかのタスクを完了するため、コンパイル時に書き込み、プログラムの実行時に呼び出す必要があります.
makeとconfigure
1つのソフトウェアは往々にして1つのソースファイルだけではなくて、もし手動ですべてのソースファイルに対してコンパイルを行うならば、とても疲れて、幸いにも1つのとても役に立つツール
さまざまなLinuxシステムの内部環境が異なるため、ソフトウェア開発者は環境が要求に合っているかどうかを自動的に検出し、各環境に特定のMakefile/makeefileファイルを生成するプログラムを作成します.
なお,ソースコードが修正されて再コンパイルされるとmakeは変動する部分を認識し,インクリメンタル更新を行うことができる.
Tarballファイル
ソースコードは純粋なテキストファイルであり、ソフトウェア開発者が直接これらの純粋なテキストファイルを提供すると、開発者の帯域幅が浪費され、ユーザーがダウンロードしにくくなります.
したがって、Tarballファイルは、ソフトウェアのすべてのソースコードをtarでパッケージ化し、圧縮技術で圧縮し、通常gzipを使用するため、一般的な拡張子は
Tarballファイルには、通常次のものが含まれます.ソースファイル 検出プログラムファイル(configureやconfigなど) ソフトウェアの簡単な説明とインストールの説明(READMEまたはINSTALL) tarballソフトウェアをインストールするにはソースコードをダウンロードします.リンク を解凍し、ソースコードがあるディレクトリのREADME/INSTALLを読みます. ./configure'--enable-framework[=DIR]':ソースコードが存在するディレクトリのconfigureを実行し、Makefileファイルを生成します.最終実行可能ファイルのインストールディレクトリを指定できます. make:ディレクトリの下でmakeプログラムを実行し、Makefileファイルを探し、ファイルの内容に基づいてコンパイルします.生成された実行可能ファイルは、現在のディレクトリの下に保存されます. make install:makeはMakefileファイルのinstallのオプションに従って、コンパイル済みの実行可能ファイルを指定したディレクトリにインストールし、インストールを完了します.
実測
ソフトウェアのアンインストール
インストールディレクトリ
参考資料
《鳥哥的linux私房菜》第22章ソフトウェアインストール:ソースコードとTarball
通常、Windowsの下にソフトウェアをインストールし、実行可能ファイルをダウンロードするだけで、
までインストールを完了することができます.Linuxでは、ソフトウェアのソースコードを取得し、自分でコンパイルして実行可能なファイルを生成してインストールすることができます.ソースコードを使うメリットは何ですか?必要に応じてソフトウェアを修正したり、発見されたがメーカーに更新されていない脆弱性を事前に修正したりすることができます.これがオープンソースのメリットです.ソースコード、実行可能ファイルとは
ソースコードはプログラミング言語で作成されたプログラムで、実はテキストファイルで、テキストエディタで編集することができます.実行可能ファイルはオペレーティングシステムが認識するバイナリプログラムです.ソースコードを実行可能ファイルにするには、ソースコードを
する必要があります.C言語のコンパイラは
gcc
ですコンパイルはどのようなプロセスですか
ソフトウェアのソースコード(文書ドキュメント)+システムの既存の関数ライブラリ、コンパイラのコンパイルを経て、実行可能なファイル関数ライブラリを生成するのは何ですか?Pythonが多くの外部のモジュール/ライブラリを呼び出していくつかの機能を実現するように、ソフトウェアもシステムの関数でいくつかのタスクを完了するため、コンパイル時に書き込み、プログラムの実行時に呼び出す必要があります.
makeとconfigure
1つのソフトウェアは往々にして1つのソースファイルだけではなくて、もし手動ですべてのソースファイルに対してコンパイルを行うならば、とても疲れて、幸いにも1つのとても役に立つツール
make
があって、自動的にコンパイルの過程を完成することができます.では、makeは何に基づいてコンパイルされますか?彼は現在のディレクトリの下でMakefile/makefileファイルを検索します.このファイルには必要なすべての内容が表示されます.しかし、この書類は生まれながらにして、変わらないものではない.さまざまなLinuxシステムの内部環境が異なるため、ソフトウェア開発者は環境が要求に合っているかどうかを自動的に検出し、各環境に特定のMakefile/makeefileファイルを生成するプログラムを作成します.
configure
です.なお,ソースコードが修正されて再コンパイルされるとmakeは変動する部分を認識し,インクリメンタル更新を行うことができる.
Tarballファイル
ソースコードは純粋なテキストファイルであり、ソフトウェア開発者が直接これらの純粋なテキストファイルを提供すると、開発者の帯域幅が浪費され、ユーザーがダウンロードしにくくなります.
したがって、Tarballファイルは、ソフトウェアのすべてのソースコードをtarでパッケージ化し、圧縮技術で圧縮し、通常gzipを使用するため、一般的な拡張子は
*.tar.gz
または*.tgz
である.しかし、その後圧縮効率の高いbzip 2が現れたため、拡張子も*.tar.bz2
などになる.Tarballファイルには、通常次のものが含まれます.
/usr/local/src
ディレクトリの下に解凍することをお勧めします./usr/local/bin/
でインストールすることを推奨します../configure --enable-framework=/Users/ronald/Library/Frameworks
実測
➜ Python-2.7.9 ./configure
checking build system type... x86_64-apple-darwin14.5.0
checking host system type... x86_64-apple-darwin14.5.0
...
configure: checking for device files
checking for /dev/ptmx... yes
checking for /dev/ptc... no
checking for %lld and %llu printf() format support... yes
checking for %zd printf() format support... yes
checking for socklen_t... yes
checking for build directories... done
checking for ensurepip... no
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
➜ Python-2.7.9 make
....
Python build finished, but the necessary bits to build these modules were not found:
_bsddb _sqlite3 _ssl
bsddb185 dbm dl
gdbm imageop linuxaudiodev
nis ossaudiodev readline
spwd sunaudiodev zlib
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 /Users/chao/Downloads/Python-2.7.9/Tools/scripts/pydoc -> build/scripts-2.7
copying and adjusting /Users/chao/Downloads/Python-2.7.9/Tools/scripts/idle -> build/scripts-2.7
copying and adjusting /Users/chao/Downloads/Python-2.7.9/Tools/scripts/2to3 -> build/scripts-2.7
copying and adjusting /Users/chao/Downloads/Python-2.7.9/Lib/smtpd.py -> build/scripts-2.7
changing mode of build/scripts-2.7/pydoc from 644 to 755
changing mode of build/scripts-2.7/idle from 644 to 755
changing mode of build/scripts-2.7/2to3 from 644 to 755
changing mode of build/scripts-2.7/smtpd.py from 644 to 755
/usr/bin/install -c -m 644 ./Tools/gdb/libpython.py python.exe-gdb.py
setup.py
missing.append
ソフトウェアのアンインストール
インストールディレクトリ
rm -rf /usr/local/bin/xxx
の削除参考資料
《鳥哥的linux私房菜》第22章ソフトウェアインストール:ソースコードとTarball