WgetユーティリティのRPMファイルを作成しようとしています。 rpmbuildコマンドを使用しようとした(SudoありとSudoなし)両方の試みで、.rpmファイルを作成できませんでした。
「Sudorpmbuild」コマンドを実行してスペックファイルを使用します。しかし、次のエラーが発生します。
エラー:ファイルが見つかりません:/root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/usr/local/bin/wgetエラー:ファイルが見つかりません:/root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/usr /local/share/man/man1/wget.1
ディレクトリパスを手動で作成し、ファイルを手動でコピーすると、将来的に他の問題が発生します。 rpmbuildコマンドがキーファイルが上記の場所にあることを期待している場合、何かがおかしいと思います。
須藤は使わない方がいいと読んだ。 Sudoを使用しない場合、rpmbuildコマンド(rpmbuild -v -bb --clean SPECS/wget.spec
)これを示しています:
実行中(%prep):/ bin/sh -e /var/tmp/rpm-tmp.NiuIFV + umask 022 + cd/home/ec2-user/mywget/BUILD + cd/home/ec2-user/mywget/BUILD + rm -rf wget-1.19 rm:「wget-1.19/po/[email protected]」を削除できませんrm:削除できません「wget-1.19/po/zh_CN.po」:アクセスが拒否されましたrm:「wget」を削除できません-1.19/po/id.gmo ':アクセスが拒否されましたrm:削除できません' wget-1.19/po/gl.gmo ':アクセスが拒否されました.。
他の「rmは削除できません...アクセスが拒否されました」という行が表示されます。 rpmbuildコマンドが機能することを期待していました。 wget-1.19フォルダーのアクセス許可を777(Sudo chmod経由)に変更しました。所有者とグループは、rpmbuildコマンドを実行しているユーザーと同じです。私はまだ問題を抱えていました。
WgetユーティリティのRPMパッケージを作成するにはどうすればよいですか?
# This is a sample spec file for wget
%define _topdir /home/ec2-user/mywget
%define name wget
%define release 1
%define version 1.19
%define buildroot %{_topdir}/%{name}-%{version}-root
BuildRoot: %{buildroot}
Summary: GNU wget
License: GPL
Name: %{name}
Version: %{version}
Release: %{release}
Source: %{name}-%{version}.tar.gz
Prefix: /usr
Group: Development/Tools
%description
The GNU wget program downloads files from the Internet using the command-line.
%prep
%setup -q
%build
./configure
make
%install
make install prefix=$RPM_BUILD_ROOT/usr
%files
%defattr(-,root,root)
/usr/local/bin/wget
%doc %attr(0444,root,root) /usr/local/share/man/man1/wget.1
上記は変更されましたが、ここのスペックファイルの例に大きく基づいています: https://www.ibm.com/developerworks/library/l-rpm1/index.html
このエラー:
エラー:ファイルが見つかりません:/root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/usr/local/bin/wget
このファイルを%filesセクションで指定したことを意味します。
%files
/usr/local/bin/wget
そのため、rpmbuildは$ RPM_BUILD_ROOT/usr/local/bin/wgetパスにこのファイルを予期していますが、そこにはありません。したがって、このエラー。マニュアルページの場合はその逆です。
rpmbuild -bi
フェーズの直後に停止する%install
を実行し、make install
が実際に配置した/root/rpmbuild/BUILDROOT/wget-1.19-1.x86_64/の内容を確認できます。ファイル。
私推測どちらか
%install
make install prefix=$RPM_BUILD_ROOT/usr/local
または
%files
%defattr(-,root,root)
/usr/bin/wget
%doc %attr(0444,root,root) /usr/share/man/man1/wget.1
エラーを修正します。 (そのうちの1つだけです!)