ソースコードからビルドしてプログラムをインストールし(たとえば、progA
など)、最後にSudo make install
とSudo ldconfig
を呼び出します。
ただし、apt-get
はメモを取得していないようです。これは、progB
に依存するprogA
をインストールするときに、apt-get
がprogA
もインストールすることを推奨しているためです。これはなぜですか、私は何ができますか?
TL; DRcheckinstall
はあなたの友人;)
Sudo apt-get install checkinstall
Sudo make install
を使用してインストールした後、パッケージマネージャーはこのインストールについてまったく何も知りません。しかし、UbuntuリポジトリまたはPPAにある同じ名前のパッケージについてはすべて知っています。
Sudo checkinstall
の代わりにSudo make install
を使用し、リポジトリ内のバージョンとして上位バージョンを使用して、パッケージマネージャーがProgB
の正しい依存関係としてこのバージョンを受け入れるようにします。
詳細情報:
checkinstall
は本当に気の利いたものです。パッケージをビルドする方法を理解するためにmake install
コマンドが実行することに従うためです。
これは、make install
を使用してプログラムをインストールした後、罪を悔い改めたい場合、Sudo checkinstall -D make install
だけで、そのコマンドは次のことを意味します。
make install
をフォローして、それが何をするのかを理解します
copy-cat make install
(* .debパッケージ形式を除く)
パッケージからインストールします(make install
が持つように、ポイント1が与えられます)。ただし、apt-get
についても知らせます。したがって、make install
が置く場所すべてのファイルを上書きします。 YESを選択してmake install
によってパッケージ内のホームディレクトリに置かれたファイルを含める限り、checkinstall
プロセス中にいくつかのオプションを選択できます(もちろん、選択はケースバイケースでそれを行使できるように)
ボーナス:そのodesではないmake install
を使用してインストールされたパッケージを削除する(progA
を再度呼び出すこともできます)これまでに概説したcheckinstall
プロセスに従って、make uninstall
サポート を実行し、次に単に実行します。
dpkg -r progA
3つのオプション:
progA
の偽のパッケージを作成します: インストールされているパッケージバージョンを偽る方法? ( TeXliveの広範な例) .
パッケージの作成progA
の場合、checkinstall
オプションがあると簡単になります。 apt依存関係をだます方法
ソースからprogB
もビルドします。
uupdate
のdevscripts
を使用して、以前にビルドしたものと同じようにパッケージをビルドすることをお勧めします。
必要なパッケージをインストールする
$ Sudo apt-get install build-essential devscripts
公式リポジトリから古いパッケージをダウンロードし(例としてMediaWiki
を使用します)、アップストリームから新しいtarボールをダウンロードします。
$ 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/control
etcファイルに変更を加える必要があるかどうかを確認する必要があります。完了したら、debパッケージをビルドしてインストールできます
$ dpkg-buildpackage -us -uc
$ cd ..
$ Sudo dpkg -i *.deb