CentOSコンピュータでPythonインストールをアップグレードしようとしています。数回の失敗の終わりにやりましたyum remove python
。
その後、問題が発生し始めました。yum
マシンで約300の依存関係が見つかり、作業を確認した後、ほとんどすべてのコマンドとユーティリティが利用できなくなりましたls
。例(ただ開発マシンだから幸いです。)wget
yum
Pythonを削除するのがとても有害かどうか疑問に思います。 Pythonを正常に削除する方法はありますか?
答え1
多くのLinuxディストリビューションにはPythonが必要です。展開プロバイダが展開する多くのシステムユーティリティ(GUIベースまたは非GUIベース)はPythonでプログラムされています。
システムユーティリティで使用されるPythonのバージョンを「デフォルト」Pythonと呼びます。たとえば、Ubuntu 12.04の場合、python
新しくインストールされたシステムを呼び出すときに入手できるバージョン2.7.3です。
システムユーティリティはPythonで書かれているので、システムを破壊せずにデフォルトのPythonを削除することは不可能です。考えをたくさんすることさえ必要だ修正するMajor PythonはMain Pythonと同じ構成仕様を使用してコンパイルする必要があるため、同じmajor.minorシリーズのそれ以降のバージョンと同じです。これは、デフォルトのPythonで使用されるライブラリの正しい検索パスを取得するために必要です。.configure
通常、PythonをダウンロードしてソースからPythonをコンパイルするときにオプションがないわけではありません。
システム(デフォルトのPythonなど)で使用されるmajor.minorとは異なるバージョンをインストールすることは通常問題ではありません。つまり、2.6または3.4 Pythonをコンパイルして問題なくインストールできます。Nextメイン(2.7.X)Pythonで。時々、ディストリビューションはこれらのさまざまなMajor.minorパッケージを提供しますが、シリーズの最新のバグリリースではないかもしれません。
メジャーPythonシリーズの最新バージョンを使用しようとすると問題が発生します(たとえば、メジャーPythonバージョンが2.7.3のシステムでは2.7.8)。メインPythonを置き換えるのではなく、2.7.8を別の場所にコンパイルしてインストールすることをお勧めします(私の場所は/opt/python/2.7.8にあります)。これにより、ディストリビューションのセキュリティ修正スケジュールに従うことができ、他の人がPythonライブラリをテストし、そのバージョン(システムユーティリティで使用されている)との互換性を保証できます。
このバージョンのPythonを使用して開発するには、以下を使用してください。仮想環境、(または仮想環境ラッパー)次のコマンドを使用して2.7.8環境を設定します。
virtualenv -p /opt/python/2.7.8/bin/python /tmp/test
source /tmp/test/bin/activate
(2行目はを使用していると仮定しますbash
)