インストーラーを改良しています。それが機能する方法は、すべてのコンポーネントが.debファイルに作成されることです。インストーラーは、それらの依存関係とともに、それらすべてに対して一度にdpkgを呼び出すだけです。これはうまく機能します... Ubuntu Linux8.04.1にインストールする限り。たとえば、Ubuntu 8.04.3にインストールする場合、インストールされる可能性のあるlibc6-devのバージョンは大きくなります。しかし、dpkgは、より高いバージョンがすでにインストールされているにもかかわらず、libc6-devのバージョンをインストールしているようです。ご想像のとおり、これは問題を引き起こします。
これを行う適切な方法は何ですか?インストールしようとしているすべてのパッケージを、システム上のパッケージと照合しますか?私はdpkgまたはaptが私たちのためにこれをしたと思いました。第二に、なぜこれがそれと同じくらい苦痛でなければならないのですか?ターゲットコンピュータはインターネットにアクセスできず、ミラーにもアクセスできません。完全に自己完結型であるためには、アプリケーションを出荷できる必要があります。パッケージは依存関係地獄から私たちを解放するはずでしたが、そうではないようです。
最もクリーンな解決策は、すべてのパッケージをパッケージCDなどのローカルリポジトリに配置し、/etc/apt/sources.list.d
にファイルを追加してリポジトリを含めることです。次に、aptitude update; aptitude install <packages>
を実行して、正確に正しいパッケージを自動的にインストールするだけです。
dpkg
がすでにインストールされているパッケージのバージョン番号をチェックするとは思わない。 apt
でこれを行う必要がありますが、sources.list
(通常は/etc/apt/
にあります)を変更しない限り、ディスクからインストールされるとは思いません。ソースディレクトリをsources.list
に追加すると、標準のapt-get
installコマンドを実行できるようになり、すべてのチェックが自動的に行われます。