プログラムのコンパイル :: 以前のものをどうするか?

プログラムのコンパイル :: 以前のものをどうするか?

私はオープンソース開発の世界に進出しようとしていますが、次のような質問があります。

最新バージョンをコンパイルしたいときは、通常、tar ボールをダウンロードしてコンパイルします。しかし、その結果、同じソフトウェアの 2 つのバージョンが作成されます。1 つは sudo apt 経由、もう 1 つはコンパイル経由です。この問題にどう対処すればよいでしょうか?

sudo apt を適用したものを削除して開発バージョンを保持すべきでしょうか、それとも両方残しておくべきでしょうか?

また、馬鹿げた質問だとは思いますが、自分のコードが最新であることをどうやって確認すればいいのでしょうか? ナイトリービルドを毎日ダウンロード(またはチェックアウト)してコンパイルする必要がありますか?毎日?

答え1

異なるバージョンをどのように処理するかはあなた次第です。それはソフトウェアの種類によって異なります。

はい、自分でソフトウェアをコンパイルする場合は、手動で最新の状態に維持する必要があります。つまり、新しいソースをダウンロードして適用する必要があります。プログラムがコンパイル言語で記述されている場合は、ソースに変更を加えた後にそのプログラムを再コンパイルする必要があります。

ただし、apt-get バージョンと自己コンパイル版のどちらかを選択する必要はありません。いずれにせよ、ソフトウェアをインストールする前にパッケージ化してインストールする必要があります。 を入手して学習することをお勧めしますcheckinstall。 は非常に簡単に使用できます。 の代わりに を使用sudo make installしますsudo checkinstall。 次に、パッケージに関するフォームに記入するように求められ、その後、そのパッケージがインストールされます。

これは、ある程度の努力が必要と思われるかもしれません。実際、そうなのです。しかし、これを根本的に改善する方法はあります。

  1. コードの独自のローカル ブランチを保持します。
  2. アップストリームから最初にプルしてから発生した変更のみをダウンロードします。
  3. ブランチに deb パッケージ情報がまだない場合は、それを追加します。こうすることで、簡単に最新の状態に保つことができます。
  4. フォークがどれだけ根本的なステップなのかを本当に理解するために、少し休憩を取ってください。ブランチと上流のトランクの間の変更が大きいほど、手動で実行する必要がある作業が多くなります。
  5. 上記のタスクを自動化するスクリプトを作成します。
  6. PPA を保持しておくと、コンパイルされたソフトウェアを自分自身や他のユーザーが簡単にインストールして使用できるようになります。

Launchpad は上記のタスクを自動で実行できるので、最小限の労力で自分の毎日のリポジトリを取得できます。これはビルド レシピと呼ばれます。アップストリームのトランクから分岐し、自分のトランクとマージして、新しいトランクを Launchpad にプッシュする必要があります。これは良いことです。いずれにしても、アップストリームのコード変更を確認する必要があるからです。

そのため、より多くの学習が必要になりますが、一度正しく設定すれば、毎日の作業を大幅に節約できます。時間をかけて適切に学習する価値は十分にあります。慣れるまでに数週間かかるとしても、そうすべきです。

関連情報