Ubuntuリポジトリのパッケージはかなり古いので、ソースからNGinxをインストールします。これらのタイプのインストールをアップグレードするための最良の方法は何でしょうか?
私の現在のワークフローにはが含まれます。
これは最善のルートではないということです。
提案?
これが最善のルートではないと考えるのは正しいことです。このルートは多くの手動手順を必要とし、エラーが発生しやすく、拡張性が高くありません。
Linuxディストリビューションを使用する場合は、可能な限りパッケージ管理に固執する必要があります。
パッケージ管理を使用する利点:
ソースのみから作業を開始すると、これらの優れた機能がすべて失われ、物事がすぐに乱雑になり始めます。
あなたの特定の問題を解決するために、あなたは buntu backportsリポジトリ をチェックするべきです、多分彼らはあなたが使うことができるNGinxのための更新されたバージョンを持っています。
適切なバージョンがない場合、最善の解決策は、バックポートされたubuntuパッケージを自分で作成することです。それほど難しいことではなく、毎回ソースから手動でコンパイルするよりも作業が少なくて済みます。バックポーティングでは、基本的に、ubuntuからソースパッケージを取得し、古いupsteam tar.gzファイルを必要な最新のファイルに置き換え、パッケージを再構築する必要があります。
このガイド を使用して、パッケージをバックポートすることができます。
別の場所に異なるバージョンをインストールし、次のように、使用するバージョンにシンボリックリンクするだけで非常に便利であることがわかりました。
lrwxr-xr-x 1 root wheel 7B Jun 7 18:26 /usr/local/foo -> foo-1.0
drwxr-xr-x 2 root wheel 512B Jun 7 18:26 /usr/local/foo-1.0
drwxr-xr-x 2 root wheel 512B Jun 7 18:26 /usr/local/foo-1.1
利点は次のとおりです。
/usr/local/foo/bin/bar
のように同じo 'パスを引き続き使用できますもちろん、以前のバージョンに行った構成変更を再適用する必要がありますが、そのためには、バージョン管理システム(RCS/SVN/GIT)または Bcfg2 などの構成管理ツールを使用できます。 。
そしてもちろん、これはほんの一握り以下のホストにのみ適しています。
次回...それを* .rpmまたは* .debにコンパイルするのはどうですか?
これを単一のマシンにインストールする場合は、毎回ソースからインストールするのが最善の方法です。これを複数のマシンにインストールする予定で、一貫性を確保したい場合は、Debianパッケージの作成方法を学ぶ価値があります。おそらくUbuntuのパッケージをベースとして使用できます。
素晴らしい方法はありません。効果的なパッケージ管理が作成された理由は、まさにこの問題を解決するためでした。ソースでコンパイルされたもののアップグレードとアンインストールは困難です。
私はトムとデビッドに同意します。
これが1回限りのケースである場合は、ソースからの再コンパイルがおそらく最善の策です。一連のマシン上にある場合は、サポートされているパッケージ管理に移行する時期です。
これが唯一の方法だと思います。維持するサーバーがさらにある場合は、コンパイルする別のテスト環境を用意し、場合によってはコンパイル結果をパッケージ化することを検討してください。
これにより、セットアップがわずかに標準化され、多くのサーバーへの展開が容易になります。また、本番マシンではgccは必要ありません[多くの人がセキュリティ上の利点と見なします]。