web-dev-qa-db-ja.com

FedoraにDebianパッケージをインストールすることは可能ですか?

シェルではない組み込みコマンド(expectなど)を使用するスクリプトを記述しようとしていますが、オフラインで使用する予定です。

通常、私はexpectを_Sudo yum install expect_を使用してFedoraに、またはUbuntuが_Sudo apt install expect_を使用してインストールできます。

しかし、expectパッケージをダウンロードしたいのですが、_Sudo apt-cache depends expect_を使用して依存しているすべてのものを学習します(学習後は、依存関係の使用...)_Sudo apt download <depends>_。

私はそれを試し、いくつかの_.deb_ファイルをダウンロードしました。そして私もこれを試しました:

  1. _data.tar_ファイルから_.deb_ファイルを抽出します(常に成功したわけではなく、dpkgを使用していないFedoraで使用したいので、_dpkg -i <some_pkg.deb>_を使用したくありませんでした) )。

  2. _tar -xhf data.tar -C ~/demo_を使用してすべてのファイルを抽出します

  3. 最後に、_cp -rPn ~/demo/bin/* /bin ~/demo/etc/* /etc ..._を使用して、システムディレクトリ内のすべてのファイルを手動でコピーします

しかし、これを-Fedora内でこの_.deb_タイプのパッケージを特別に使用して行うと、segmentation fault (core dumped)エラーが発生し、システムが停止します。

私は自分の目標を達成するために推奨されていない危険なアプローチを試みていることを知っていますが、これをオフラインで使用する方法はありますか(たとえば、コマンドを_/usr/bin/expect_に依存してバックアップします)。

1
Ahmet Mehmet

ディストリビューション間でパッケージを混ぜて一致させようとしないでください。非常に単純な場合を除いて、確実に機能する可能性は低くなります。

代わりに、ターゲットディストリビューションのツールを使用してください。パッケージをダウンロードする方法と、Debianベースのディストリビューションへの依存関係を理解し​​ました。これはFedoraベースのディストリビューションでも可能です。 expectallの依存関係をダウンロードするには、一時ルートと一時ダウンロードディレクトリを作成し、dnfに一時ルートにexpectをインストールするために必要なパッケージをダウンロードするように指示します。

_mkdir /tmp/expectroot
mkdir /tmp/expectdeps
Sudo dnf install --installroot /tmp/expectroot \
                 --downloadonly --downloaddir /tmp/expectdeps \
                 --releasever 32 expect
_

(必要に応じて「32」を置き換えます)。

次に、ターゲットシステムの既存の依存関係に関係なく、オフラインインストールに必要なすべてのパッケージを_/tmp/expectdeps_で検索します。

6
Stephen Kitt

alienを試すことができます。異なるパッケージシステム間でパッケージを変換します。

これは完全なものではなく、依存関係が適用され、他の問題が発生する可能性がありますが、試してみる価値はあります。

4