web-dev-qa-db-ja.com

既存のDEBファイルからCentos RPMに変更する方法

製品をUbuntu12.04からCentos6.6に移動します。私は約500のdebファイルを持っています。 (たとえば、 'dpkg -i libaio1_0.3.109-2ubuntu1_AMD64.deb')。 Centosでこれらのdebsが必要です。

  1. Centosにdebパッケージをインストールする実行可能な方法はありますか?

  2. DebファイルをCentosable形式に変換する信頼できる方法は? (私はパッケージ「エイリアン」を試しましたが、機能せず、エラーが発生し、毎回失敗しました)

  3. また、dpkgコマンドはdebファイルに対して何をしますか? rpmパッケージはスペックファイルを使用し、それを使用するためにrpmコマンドからトリガーすることを知っています。しかし、.debsで同様のファイルを見つけることができませんでした。

3
Nahshon paz

エイリアンで発生した問題は、エイリアンのバグや制限によるものではなく、アプローチの本質的な問題によるものである可能性があります。 debパッケージをrpmパッケージに変換するのは簡単で、エイリアンはそれをうまくやってくれます。 buntu用パッケージCentOS用パッケージに変換するのははるかに困難です。これは、ファイルを別の形式で再パックするだけでなく、CentOSが予期するディレクトリにファイルを移動し、CentOSで動作するように構成ファイルを変更し(たとえば、別のinitシステムで)、パッケージへの依存関係を宣言することを意味します。異なる名前を持っている(またはディストリビューションにまったく表示されていないこともある)など。

500個のパッケージを使用すると、おそらくいくつかの困難なケースに遭遇することになります。ダミーパッケージの作成、シンボリックリンクとラッパースクリプトの作成、システム構成の調整などを行う価値があるかどうかはあなた次第ですが、私は間違いなく別の解決策を探しています。特に、DebianバイナリがCentOSに存在するものとは異なるライブラリバージョンに対してコンパイルされる可能性が高いことに注意してください。

CentOSマシンでDebian用に構築されたプログラムを実行する場合、最も簡単な解決策は、ChrootにDebianをインストールすることです( 別のDebianバージョンへのDebianのインストールに関するこのガイド ホスト側への依存度が高い)。

「適切な」CentOSパッケージが必要な場合は、Debianパッケージを変換するよりもソースからビルドする方がはるかに簡単です。

alienは、debrpmまたはその逆に変換するツールです...例:

Sudo alien -r /var/cache/apt/archives/alien_8.90_all.deb /home/ubuntu/
2
mazs

単純な変換でうまくいくと考えている場合は注意してください。ファイルシステムのレイアウトが大きく異なるため、デブをRPMに、またはその逆に変換することは、アメリカ人をフランスの服に着替えて、彼が収まると期待するようなものです。ファイルシステムのレイアウト、カーネル、ライブラリ、チューニングは文化的な違いのようなものです。スムーズなフィットは期待できませんAT ALL。

FPMは、何かを適切にパッケージ化したくない場合、ペイロード配信メソッドが必要な場合、そしてソースRPMを取得しないことを気にしない場合に最適です。 FPMは、ファイルシステムにスプレーペイントされた後に何かをパッケージ化するため(インストールまたは同様の2000年以前の「インストール」方法)、すべての本質的な利点を備えた清潔な隔離された場所にパッケージ化することもありません。

最終的には、パッケージ化するだけで、わずかな時間を節約し、プロセス、メソッド、およびロジックについてより多くのことを理解できます。 「短い」時間は90日と91の差のようなものですが、配達の予期しない問題のために小さな変更を加える必要がある配達後の「2日目」の問題は簡単に解決されます。

Fpmやその他のハックを検討する前に、エンタープライズLinuxでパッケージ化する方法を学べない場合は、誰かを雇うだけです。適切なオタクはそれを適切に実行します。また、何かが特定の方法でどのようにまたはなぜ行われたのかはわかりませんが、少なくともSPECファイルを使用してすばやく調整できます。

1
user2066657

fpmをチェックして、debパッケージをrpmに変換します。 debrpmの間の変換はまだ試していません。

https://www.digitalocean.com/community/tutorials/how-to-use-fpm-to-easily-create-packages-in-multiple-formats

0
7171u