rpm -q --qf "[%{FILEMODES:perms} %{FILEUSERNAME}:%{FILEGROUPNAME} %{FILENAMES}\n]" httpd -rw-r--r-- root:root /etc/httpd/conf.modules.d/00-brotli.conf -rw-r--r-- root:root /etc/httpd/conf.modules.d/00-systemd.conf ...
rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n' ... gpg-pubkey-f4a80eb5-53a7ff4b --> gpg(CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>) gpg-pubkey-352c64e5-52ae6884 --> gpg(Fedora EPEL (7) <epel@fedoraproject.org>) gpg-pubkey-08efa7dd-62c42363 --> gpg(Zabbix LLC (Jul 2022) <packager@zabbix.com>)
sudo rpm -e gpg-pubkey-08efa7dd-62c42363
/rpmbuild/以下のディレクトリの作成を専用コマンド rpmdev-setuptree で行う場合
/.rpmmacros も勝手に作られるがそれが原因でrpmbuildが失敗する事がある。「contains an invalid rpath」
sudo yum install rpmdevtools rpmdev-setuptree
rpm2cpio example.rpm | cpio -idv
rpm -q --scripts <package name>
rpm -qp --scripts <rpm file>
# 使えるtagの表示 rpm --querytags ARCH ARCHIVESIZE ... # 複数パッケージのNameだけ出力 rpm -qa --qf "%{NAME}\n" audit-libs-python pm-utils ... # 例: openssl rpm -qi openssl Name : openssl Epoch : 1 Version : 1.0.2k Release : 8.el7 Architecture: x86_64 ... # opensslのNameだけ rpm -q --qf "%{NAME}\n" openssl openssl # opensslのVersionだけ rpm -q --qf "%{VERSION}\n" openssl 1.0.2k # opensslのname, version, archをタブ区切り rpm -q --qf "%{NAME}\t%{VERSION}\t%{ARCH}\n" openssl openssl 1.0.2k x86_64
rpm -qlpi monit-5.25.1-1.el6.x86_64.rpm
rpm -ql monit
rpm -qpi example.rpm ... Relocations: (not relocatable) # 上記のrpmはインストール先を変更できない # それ以外 rpm -ivh --prefix=/usr/local/java example.rpm
rpm -qa --qf '%{name} %{size}\n' | sort -k 2 -nr
rpmを作るためにはSPECファイルを作る必要があるが面倒くさい。
1ファイルを/usr/local/bin/ にインストールする等であれば、fpm が便利。
make install make clean make build # 出来たrpmの確認 rpm -qpil <NAME.rpm> # ローカルにインストール sudo yum localinstall <NAME.rpm>
cat /etc/rpm/macros.dist ... %centos 6 rpm --eval %centos 6
rpm --eval "%configure" ./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu \ --program-prefix= \ --disable-dependency-tracking \ --prefix=/usr \ --exec-prefix=/usr \ --bindir=/usr/bin \ --sbindir=/usr/sbin \ --sysconfdir=/etc \ --datadir=/usr/share \ --includedir=/usr/include \ --libdir=/usr/lib64 \ --libexecdir=/usr/libexec \ --localstatedir=/var \ --sharedstatedir=/var/lib \ --mandir=/usr/share/man \ --infodir=/usr/share/info
rpm --showrc
rpm -q --changelog httpd
yum install yum-changelog yum --changelog update httpd
%changelog * Tue Jan 01 2013 hoge - create rpm package
rpm -qR [package]
rpm -qpR [package.rpm] rpm -qpR s3cmd-1.0.1-1.noarch.rpm /usr/bin/python python(abi) = 2.4 rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
$ rpm --showrc 2>&1 | more $ rpm --showrc 2>&1 | grep /etc -14: _sysconfdir /etc $ rpm --eval %_sysconfdir /etc
$ sudo rpm -e mysql-5.0.77-4.el5_4.1 $ エラー: "nss_ldap-226-10" は複数のパッケージを指定しています
$ sudo rpm -e --allmatches mysql-5.0.77-4.el5_4.1
mkdir -p ~/rpm/{BUILD,SRPMS,SPECS,SOURCES,RPMS} cd rpm echo "%_topdir $HOME/rpm" > ~/.rpmmacros # ビルド用パッケージをインストール sudo yum install rpm-build gcc flex openssl-devel pam-devel byacc # srpmをインストール rpm ivh install https://www.insaneworks.co.jp/pub/el7/SRPMS/monit-5.25.1-1.el7.centos.src.rpm # 必要ならカスタマイズ vim SPECS/monit.spec # ビルド rpmbuild -bb SPECS/monit.spec # インストール sudo rpm -Uvh ./RPMS/x86_64/monit-5.25.1-1.x86_64.rpm
# specファイルの記述 Version: 5.25.1 Release: 1%{dist} # /etc/rpm/macros.dist の記述 %centos_ver 7 %centos 7 %rhel 7 %dist .el7.centos %el7 1 # 生成されるrpmファイル example.5.25.1-1.el7.centos.x86_64.rpm # CentOS 6の場合 example.5.25.1-1.el6.x86_64.rpm
# specファイルの記述 Release: 1.el%{rhel}
# yum -y install yum-utils
# vi /etc/yum.repos.d/CentOS-Base.repo ---- [base-srpnss_ldap-226-10 ~/.ssh/authorized_keysm] name=CentOS-$releasever - Base SRPM baseurl=http://mirror.centos.org/centos/$releasever/os/SRPMS/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [updates-srpm] name=CentOS-$releasever - Updates SRPM baseurl=http://mirror.centos.org/centos/$releasever/updates/SRPMS/ enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [extras-srpm] name=CentOS-$releasever - Extras SRPM baseurl=http://mirror.centos.org/centos/$releasever/extras/SRPMS/ gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 ----
yumdownloader --source sqlite
$ which GET /usr/bin/GET $ rpm -qf /usr/bin/GET perl-libwww-perl-5.805-1.1.1
エラー: rpmdbNextIterator: skipping h# 1786 Header V3 DSA signature: BAD, key ID db42a60e
# mv /var/lib/rpm/__db.00? /tmp # rpm --rebuilddb
# mv /var/lib/rpm/Pubkeys /tmp/ # rpm --rebuilddb
yum install rpm-build.x86_64 gettext.x86_64 git.x86_64 cd /usr/local/src git clone http://checkinstall.izto.org/checkinstall.git cd checkinstall # パッチを当てる patch -p1 < checkconfig.x86_64.patch make make install
cd checkinstall checkinstall cd rpm -ivh rpmbuild/RPMS/x86_64/checkinstall-20120813-1.x86_64.rpm