web-dev-qa-db-ja.com

ソースからコンパイルされたパッケージを更新する方法は?

可能性のある複製:
ソースコードからインストールしたソフトウェアを直接更新できます

Enlightenmentデスクトップ環境をインストールしようとしていますが、非常に長いプロセスです。インストールしたら、自動的に更新されるのか、それとも更新するためにコンパイルを続けなければならないのかを知りたい。

8
Jacky

ソースからインストールする場合、新しくインストールされたファイル(どのファイルとその配置場所)を追跡するもの(dpkgなど)はありません。明示的にツールを使用しない限り。

ファイルがインストールされた場所を知る方法

私はGitを使用して/ usr/localのインストールを追跡します。外観は次のとおりです。

cd /usr/local
git init
git add .
git commit -m "Starting to track /usr/local"

新しいソフトウェアをインストールします(./configuremakemake install)。その後:

cd /usr/local
git status
git add .
git commit -a -m "Installed open-magic-1.2.3"

ここで、どのファイルがインストールされたか、いつ参照するかを呼び出します

cd /usr/local
git log --stat

Gitに熟練している場合は、いくつかのgitコマンドでninstallsを実行することもできます。ただし、Gitはファイルのアクセス許可を追跡しないので注意してください(ファイルに対するすべてのアクセス許可と所有権を保存および復元できる特別なスクリプトを作成しました)。/usr/localに334個のコミット(インストール済み)があるにもかかわらず、アンインストールを数回しか行いませんでした。

一部の人々はソフトウェアを専用ディレクトリにインストールし、シンボリックリンクを作成するか、binディレクトリをPATHに追加します。

私もそれを始めました。 PREFIXを/opt/open-science-1.2.3(たとえば)に設定してソースをインストールし、Gitで追跡された/usr/local/binのbinファイルへのシンボリックリンクを作成します。本当に素晴らしいのは、非ルートが所有する/opt/open-science-1.2.3ディレクトリを事前に作成してから、非ルートとしてmake installを実行できることです。これは、インストールスクリプトがシステムのどこにでも/opt/open-science-1.2.3に期待するファイルを配線しなかったことを証明しています。

シンプルだが面倒な方法

おそらく、アップグレードする最も簡単な方法は、新しいソースを再インストールすることです。初めての場合と同じようにインストール手順をすべて実行してください。孤立した古いファイルが横たわる場合があります。ソフトウェアは正常に実行されますが、孤立したファイルがスペースを占有するため、セットアップが面倒になります。

5

Aleksandr Levchukが正しく指摘したように、GITまたはSVNを使用して、利用可能な更新のインストールを追跡できます。 EnlightenmentにはSVNがあります- http://www.Enlightenment.org/p.php?p=contribute&l=en

私は数ヶ月前に同様の質問をしていました- ソースコードからインストールされたソフトウェアを直接更新できますか 。良い答えも得ました。

0
Chethan S.

更新ごとに再コンパイルする必要があります。 Git、SVN、bzrなどのソースリビジョンパッケージは、ソースファイル内の更新を見つけてダウンロードするのに役立ちますが、再コンパイルする必要があります。ソースファイルの自動更新トラッカー/インストーラーはありません。

0
laurent