web-dev-qa-db-ja.com

AWS Ubuntu14.04アップグレードPythonから2.7.10、apt-getpython-devの処理方法

AWSのUbuntu14.04には、python 2.7.6が付属しています。

イメージに他のことをする前に、発行して2.7.10にアップグレードします

Sudo apt-get -y install build-essential checkinstall libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
mkdir -p ~/python/2.7.10
cd ~/python/2.7.10
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
tar xzf Python-2.7.10.tgz
cd Python-2.7.10
Sudo ./configure
Sudo make install
cd ~/

make installの代わりにSudo make altinstallを使用します。これは、システム上で唯一のPython 2.7、デフォルトのものにしたいためです。

ドキュメントに警告があることを知っています

警告:makeinstallはpythonバイナリを上書きまたはマスカレードする可能性があります。したがって、exec_prefix/bin/pythonversionのみをインストールするため、makeinstallの代わりにmakealtinstallをお勧めします。

make altinstallに固執する必要がありますか?それをデフォルトのpythonにするにはどうすればよいですか?

pip install --upgrade --force-reinstall pyopensslのような、いくつかのCコードをコンパイルする他のライブラリをどのように処理しますか? Cコードをコンパイルするには、ヘッダーを取得するためにSudo apt-get install python-devする必要があります。 この仮定は間違っていますか?レポのpython-devは2.7.6に基づいていると思うので、これについて少し混乱しています。

さらに、virtualenvでpipを実行しているため、そこでpip install --upgrade --force-reinstall pyopensslを発行すると、OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/pyOpenSSL-0.15.1.dist-info'エラーが発生します。これは、Sudoを実行していない(ただしデフォルトユーザーとして)ことが原因である可能性があります。 、ライブラリをvirtualenvにインストールするため。 これは何が原因ですか?アップグレードせずにPython at 2.7.6)のままにすると発生しません

最後の質問:コンパイルして手動でpythonをアップグレードするとすぐに、リポジトリでpython- *パッケージ(apt-get python- *)を使用できなくなりますか?

よろしくお願いします。

5
Daniel F

すべてをデフォルトのままにし、すべての非標準バージョンにDockerを使用することで、この問題を解決しました。

1
Daniel F