エイリアンを使用して.rpmを.debに変換しようとしています。
Sudo alien -k libtetra-1.0.0-2.i386.rpm
エイリアンは言います:
libtetra-1.0.0-2.i386.deb generated
しかし、フォルダを確認すると、元の.rpmだけがあり、.debはありません。また-ほんの一瞬、フォルダーに.debファイルがあることがわかります。そのため、エイリアンは.debを作成し、すぐに削除します。
64ビットOSを実行していて、パッケージが32であるためかと思われます。
エイリアンが.debを自動的に削除する理由を誰かが説明できますか?
詳細出力:
LANG=C rpm -qp --queryformat %{NAME} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{VERSION} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{RELEASE} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{Arch} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{CHANGELOGTEXT} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{SUMMARY} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{DESCRIPTION} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{PREFIXES} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{POSTIN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{POSTUN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{PREUN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{LICENSE} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qp --queryformat %{PREIN} libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qcp libtetra-1.0.0-2.i386.rpm
rpm -qpi libtetra-1.0.0-2.i386.rpm
LANG=C rpm -qpl libtetra-1.0.0-2.i386.rpm
mkdir libtetra-1.0.0
chmod 755 libtetra-1.0.0
rpm2cpio libtetra-1.0.0-2.i386.rpm | lzma -t -q > /dev/null 2>&1
rpm2cpio libtetra-1.0.0-2.i386.rpm | (cd libtetra-1.0.0; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1
chmod 755 libtetra-1.0.0/./
chmod 755 libtetra-1.0.0/./usr
chmod 755 libtetra-1.0.0/./usr/lib
chown 0:0 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
chmod 755 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
mkdir libtetra-1.0.0/debian
date -R
date -R
chmod 755 libtetra-1.0.0/debian/rules
debian/rules binary 2>&1
libtetra_1.0.0-3_i386.deb generated
find libtetra-1.0.0 -type d -exec chmod 755 {} ;
rm -rf libtetra-1.0.0
非常に詳細な出力
LANG=C rpm -qp --queryformat %{NAME} libtetra-1.0.0-2.i386.rpm
libtetra
LANG=C rpm -qp --queryformat %{VERSION} libtetra-1.0.0-2.i386.rpm
1.0.0
LANG=C rpm -qp --queryformat %{RELEASE} libtetra-1.0.0-2.i386.rpm
2
LANG=C rpm -qp --queryformat %{Arch} libtetra-1.0.0-2.i386.rpm
i386
LANG=C rpm -qp --queryformat %{CHANGELOGTEXT} libtetra-1.0.0-2.i386.rpm
- First RPM Package
LANG=C rpm -qp --queryformat %{SUMMARY} libtetra-1.0.0-2.i386.rpm
Panasonic KX-MC6000 series Printer Driver for Linux.
LANG=C rpm -qp --queryformat %{DESCRIPTION} libtetra-1.0.0-2.i386.rpm
This software is Panasonic KX-MC6000 series Printer Driver for Linux.
You can print from applications by using CUPS(Common Unix Printing System)
which is the printing system for Linux.
Other functions for KX-MC6000 series are not supported by this software.
LANG=C rpm -qp --queryformat %{PREFIXES} libtetra-1.0.0-2.i386.rpm
(none)
LANG=C rpm -qp --queryformat %{POSTIN} libtetra-1.0.0-2.i386.rpm
(none)
LANG=C rpm -qp --queryformat %{POSTUN} libtetra-1.0.0-2.i386.rpm
(none)
LANG=C rpm -qp --queryformat %{PREUN} libtetra-1.0.0-2.i386.rpm
(none)
LANG=C rpm -qp --queryformat %{LICENSE} libtetra-1.0.0-2.i386.rpm
GPL and LGPL (Version2)
LANG=C rpm -qp --queryformat %{PREIN} libtetra-1.0.0-2.i386.rpm
(none)
LANG=C rpm -qcp libtetra-1.0.0-2.i386.rpm
rpm -qpi libtetra-1.0.0-2.i386.rpm
Name : libtetra Relocations: (not relocatable)
Version : 1.0.0 Vendor: Panasonic Communications Co., Ltd.
Release : 2 Build Date: Tue 27 Apr 2010 05:16:40 AM EDT
Install Date: (not installed) Build Host: localhost.localdomain
Group : System Environment/Daemons Source RPM: libtetra-1.0.0-2.src.rpm
Size : 31808 License: GPL and LGPL (Version2)
Signature : (none)
URL : http://panasonic.net/pcc/support/fax/world.htm
Summary : Panasonic KX-MC6000 series Printer Driver for Linux.
Description :
This software is Panasonic KX-MC6000 series Printer Driver for Linux.
You can print from applications by using CUPS(Common Unix Printing System)
which is the printing system for Linux.
Other functions for KX-MC6000 series are not supported by this software.
LANG=C rpm -qpl libtetra-1.0.0-2.i386.rpm
/usr/lib/libtetra.so
/usr/lib/libtetra.so.1.0.0
mkdir libtetra-1.0.0
chmod 755 libtetra-1.0.0
rpm2cpio libtetra-1.0.0-2.i386.rpm | lzma -t -q > /dev/null 2>&1
rpm2cpio libtetra-1.0.0-2.i386.rpm | (cd libtetra-1.0.0; cpio --extract --make-directories --no-absolute-filenames --preserve-modification-time) 2>&1
63 blocks
chmod 755 libtetra-1.0.0/./
chmod 755 libtetra-1.0.0/./usr
chmod 755 libtetra-1.0.0/./usr/lib
chown 0:0 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
chmod 755 libtetra-1.0.0//usr/lib/libtetra.so.1.0.0
mkdir libtetra-1.0.0/debian
date -R
Mon, 07 Feb 2011 11:03:58 -0500
date -R
Mon, 07 Feb 2011 11:03:58 -0500
chmod 755 libtetra-1.0.0/debian/rules
debian/rules binary 2>&1
dh_testdir
dh_testdir
dh_testroot
dh_clean -k -d
dh_clean: No packages to build.
dh_installdirs
dh_installdocs
dh_installchangelogs
find . -maxdepth 1 -mindepth 1 -not -name debian -print0 | \
xargs -0 -r -i cp -a {} debian/
dh_compress
dh_makeshlibs
dh_installdeb
dh_shlibdeps
dh_gencontrol
dh_md5sums
dh_builddeb
libtetra_1.0.0-2_i386.deb generated
find libtetra-1.0.0 -type d -exec chmod 755 {} ;
rm -rf libtetra-1.0.0
解像度
しかたがない。おそらくバグのように見えますか?または私は知りません。 VirtualBoxに32ビットバージョンのUbuntuをインストールし、そこでパッケージを変換しました。何らかの理由で、64 OSで32ビットパッケージを変換できませんでした。それがそれです。
誰かがこの動作の理由を見つけた場合-plz。コメントのどこかに投稿してください。
ありがとう
Alienが-i
フラグで実行されているように聞こえます。
-i, --install Automatically install each generated package, and remove the package file after it has been installed.
しかし、あなたの質問から、それは真実ではないようです。ここでは、異なるアーキテクチャが問題になる場合があります。 -v
を使用してプロセスをさらにデバッグするか、それが何も生成しない場合は、--veryverbose
を試してください。これらのフラグから問題を判別できない場合は、元の質問にそれぞれの出力を投稿してください。
最後に、マシンに多くの一般的な32ビット共有ライブラリを配置するia32-libs
パッケージをインストールしてみてください。これは、64ビットマシンで32ビットプログラムをコンパイルおよび実行するのに役立ちます。
最もセクシーなトリックではありませんが、次のことができます。
mv /bin/rm /bin/rm_renamed
ln -s /bin/echo /bin/rm
alien --scripts your_rpm.rpm
mv /bin/rm /bin/rm_bad_link
mv /bin/rm_renamed /bin/rm
rm /bin/rm_bad_link