ソースコードを取得してプログラムをインストールし、次に `sudo make install`を実行しました。「apt-get」にそれを知らせる方法は?


46

私は、(例えば、それを呼び出すプログラムをインストールしprogAたソースコードからそれを構築し、最終的に呼び出すことで)sudo make installsudo ldconfig

ただし、apt-getメモを受け取っていないようです。progBこれは、インストール時に依存しますがprogAapt-getインストールすることも推奨しているためprogAです。これはなぜですか、私は何ができますか?


私はあなたがインストールしてあると思うprogB...あまりにも手動
Parto

11
作成した「カスタム」バージョンがパッケージと同じである、つまり依存関係であると想定することはできません。ショートカット(推奨されません)は、実際のパッケージをインストールし、バイナリを「特別な」もので上書きすることです。あなたは特定されていないので、私はそれ以上のアドバイスを提供することはできません。
david6

6
ただこれをしないでください。パッケージ管理によって管理されるソフトウェアは、自分でコンパイルするソフトウェアとは厳密に分離してください。
Reinierポスト

回答:


56

TL; DR checkinstallはあなたの友達です;)

sudo apt-get install checkinstall

sudo make installパッケージマネージャーでのインストール後、このインストールについてはまったく何もわかりません。しかし、UbuntuリポジトリまたはPPAにある同じ名前のパッケージについてはすべて知っています。

使用するsudo checkinstall代わりにsudo make install、あなたのパッケージマネージャがための正しい依存関係として、このバージョンを受け入れること、そして確かに、リポジトリ内のバージョンと上位バージョンを使用しますProgB


さらに詳しい情報:

checkinstallmake installパッケージをビルドする方法を理解するためにコマンドが行うことになるので、本当に気の利いたものです。

これは、を使用してプログラムをインストールしたmake installが、罪を悔い改めたい場合、あなたがしなければならないことはsudo checkinstall -D make install、そしてそのコマンドは以下を実行することを意味します:

  1. make installそれが何をするかを理解するために従う

  2. copy-cat make install(* .debパッケージ形式を除く)

  3. (まったく同じパッケージからインストールするmake install必要があり、与えられた点1がある))にも聞かせて除き、apt-get場所を正確にすべてのファイルを上書きするので、それについて知っているし、そしてmake installによって限り、あなたはファイルをインクルードするために[はい]を選択します置くようにそれらを置く必要がありますmake installホームディレクトリにパッケージでも同様です- checkinstallプロセス中にいくつかのオプションを選択できます(ただし、場合によっては選択できるため、ケースバイケースで実行できます)

ボーナス: これまでに概説したプロセスに従って、単純に以下を実行することで、サポートのないode を使用しインストールされたパッケージを削除(progA再呼び出し)することもできますmake installmake uninstallcheckinstall

dpkg -r progA

18
うわー、checkinstall世界はこれについて知る必要があります!

昨日実装しようとしたことに基づいて、回答にさらに詳細を追加し、このメタ質問からの推奨事項を追加しました。さらに編集してください。

どの詳細を意味しますか?
AB

ああ、私は彼らがまだレビューしていないので、それが編集レビューにあると思います-あなたがメタ質問へのリンクをクリックすると、あなたは彼らが何であるかを見るでしょう推奨事項は、受け入れられた回答本文に入れることです。

パッケージドキュメントディレクトリ./doc-pakは存在しません。パッケージドキュメントのデフォルトセットを作成する必要がありますか?
n8chz

13

3つのオプション:

  1. 偽のパッケージを作成するprogAインストールされたパッケージバージョンを偽る方法は?TeXliveの広範な例があります)

  2. のパッケージ作成します。オプションprogAがあれば簡単ですcheckinstallapt依存関係をだます方法は?

  3. progBソースからもビルドします。


1
4. progAコンパイルしたバージョンをアンインストールして、バージョンをインストールしapt-getます。5. apt-getコンパイルされたバージョンの上にパッケージをインストールし、最善の結果を期待します。
jwodder

1

uupdatefrom devscriptsを使用して、元のビルドのようにパッケージをビルドすることをお勧めします。

必要なパッケージをインストールする

$ sudo apt-get install build-essential devscripts

公式リポジトリ(MediaWiki例として使用します)から古いパッケージをダウンロードし、アップストリームから新しいtar-ballをダウンロードします。

$ mkdir ~/Downloads/mediawiki
$ cd ~/Downloads/mediawiki
$ apt-get source mediawiki
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.0.tar.gz

実行uupdateして、アップストリームのtarボールから古いソースフォルダーを作成します。debian/control

$ cd mediawiki-1.19.14+dfsg   # depends on your Ubuntu version
$ uupdate ../mediawiki-1.26.0.tar.gz 1.26.0
$ cd ../mediawiki-1.26.0

次に、debian/controletcファイルを変更する必要があるかどうかを確認する必要があります。完了したら、debパッケージをビルドしてインストールできます

$ dpkg-buildpackage -us -uc
$ cd ..
$ sudo dpkg -i *.deb
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.