1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
|
#/*! \page config_rpmpopt Default configuration: /usr/lib/rpm/rpmpopt-@VERSION@
# \verbatim
#
# This file *should not be modified*. Local customizations
# belong in /etc/popt, not here. This file will be replaced
# whenever a new version of RPM is installed.
#
# Note: Not all popt aliases are documented. This is a decision on my
# part as to which are the more important aliases. Feel free to clip
# a copy of the alias/exec here and place in /etc/popt or ~/.popt with
# your own words added. It's easier than arguing about how many options
# fit on the head of an executable :-)
#
rpm alias --scripts --qf '\
%|PREIN?{preinstall scriptlet\
%|PREINPROG?{ (through %{PREINPROG})}|:\n%{PREIN}\n}:\
{%|PREINPROG?{preinstall program: %{PREINPROG}\n}|}|\
\
%|POSTIN?{postinstall scriptlet\
%|POSTINPROG?{ (through %{POSTINPROG})}|:\n%{POSTIN}\n}:\
{%|POSTINPROG?{postinstall program: %{POSTINPROG}\n}|}|\
\
%|PREUN?{preuninstall scriptlet\
%|PREUNPROG?{ (through %{PREUNPROG})}|:\n%{PREUN}\n}:\
{%|PREUNPROG?{preuninstall program: %{PREUNPROG}\n}|}|\
\
%|POSTUN?{postuninstall scriptlet\
%|POSTUNPROG?{ (through %{POSTUNPROG})}|:\n%{POSTUN}\n}:\
{%|POSTUNPROG?{postuninstall program: %{POSTUNPROG}\n}|}|\
\
%|VERIFYSCRIPT?{verify scriptlet:\n%{VERIFYSCRIPT}\n}|\
' \
--POPTdesc=$"list install/erase scriptlets from package(s)"
rpm alias --setperms -q --qf '[\[ -L %{FILENAMES:shescape} \] || chmod %7.7{FILEMODES:octal} %{FILENAMES:shescape}\n]' \
--pipe "grep -v \(none\) | sed 's/chmod .../chmod /' | sh" \
--POPTdesc=$"set permissions of files in a package"
rpm alias --setugids -q --qf \
'[ch %{FILEUSERNAME:shescape} %{FILEGROUPNAME:shescape} %{FILENAMES:shescape}\n]' \
--pipe "(echo 'ch() { chown -- \"$1\" \"$3\";chgrp -- \"$2\" \"$3\"; }';grep -v \(none\))|sh" \
--POPTdesc=$"set user/group ownership of files in a package"
rpm alias --conflicts --qf \
"[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" \
--POPTdesc=$"list capabilities this package conflicts with"
rpm alias --obsoletes --qf \
"[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" \
--POPTdesc=$"list other packages removed by installing this package"
rpm alias --provides --qf \
"[%{PROVIDENAME} %|PROVIDEFLAGS?{%{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}}:{}|\n]" \
--POPTdesc=$"list capabilities that this package provides"
rpm alias --requires --qf \
"[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" \
--POPTdesc=$"list capabilities required by package(s)"
rpm alias -R --requires
rpm alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocateable)}|\n\
Version : %-27{VERSION} Vendor: %{VENDOR}\n\
Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\
Install date: %|INSTALLTIME?{%-27{INSTALLTIME:date}}:{(not installed) }| Build Host: %{BUILDHOST}\n\
Group : %-27{GROUP} Source RPM: %{SOURCERPM}\n\
Size : %-27{SIZE}%|LICENSE?{ License: %{LICENSE}}|\n\
%|PACKAGER?{Packager : %{PACKAGER}\n}|\
%|URL?{URL : %{URL}\n}|\
Summary : %{SUMMARY}\n\
Description :\n%{DESCRIPTION}\n' \
--POPTdesc=$"list descriptive information from package(s)"
rpm alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n\n%{CHANGELOGTEXT}\n\n]' \
--POPTdesc=$"list change logs for this package"
rpm alias --triggerscripts --qf '\
[trigger%{TRIGGERTYPE} script (through %{TRIGGERSCRIPTPROG}) -- %{TRIGGERCONDS}\n\
%{TRIGGERSCRIPTS}\n]'
rpm alias --triggers --triggerscripts \
--POPTdesc=$"list trigger scriptlets from package(s)"
rpm alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NAME}-%{VERSION}-%{RELEASE} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
--pipe "sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \
--POPTdesc=$"list package(s) by install time, most recent first"
rpm alias --filesbypkg --qf '[%-25{=NAME} %{FILENAMES}\n]' \
--POPTdesc=$"list all files from each package"
rpm alias --redhatprovides -q --define '_dbpath /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat' --whatprovides \
--POPTdesc=$"find package name that contains a provided capability (needs rpmdb-redhat package installed)"
rpm alias --redhatrequires -q --define '_dbpath /usr/lib/rpmdb/%{_arch}-%{_vendor}-%{_os}/redhat' --whatrequires \
--POPTdesc=$"find package name that contains a required capability (needs rpmdb-redhat package installed)"
# colon separated i18n domains to use as PO catalogue lookaside for
* retrieving header group/description/summary.
#
# For Red Hat, value should be "redhat-dist:redhat-powertools".
rpm alias --i18ndomains --define '_i18ndomains !#:+'
# Build policies enabled from command line. Last policy applies.
rpm alias --buildpolicy --define '__os_install_post @RPMCONFIGDIR@/brp-!#:+' \
--POPTdesc=$"set buildroot <policy> (e.g. compress man pages)" \
--POPTargs=$"<policy>"
# Choose db interface:
# 0 same as 1
# 1 native db1 interface (e.g. linux glibc libdb1 routines).
# 2 native db2 interface.
# 3 native db3 interface.
# -1 db3 -> db2 -> db1 (as available).
#
# There are two macros so that --rebuilddb can convert db1 -> db3
rpm alias --dbapi --define '_dbapi !#:+'
rpm alias --rebuilddbapi --define '_dbapi_rebuild !#:+'
rpm alias --rebuilddbpath --define '_dbapath_rebuild !#:+'
#==============================================================================
# [--dbpath <dir>] "use <dir> as the directory for the database"
rpm alias --dbpath --define '_dbpath !#:+'
# [--ftpport <port>] "port number of ftp server (or proxy)"
rpm alias --ftpport --define '_ftpport !#:+'
# [--ftpproxy <host>] "hostname or IP of ftp proxy"
rpm alias --ftpproxy --define '_ftpproxy !#:+'
# [--httpport <port>] "port number of http server (or proxy)"
rpm alias --httpport --define '_httpport !#:+'
# [--httpproxy <host>] "hostname or IP of http proxy"
rpm alias --httpproxy --define '_httpproxy !#:+'
# set the time check to <secs>
rpm alias --timecheck --define '_timecheck !#:+'
#==============================================================================
# Popt glue to preserve legacy CLI behavior.
#
# XXX popt exec parsing doesn't honor POPT_ARGFLAG_ONEDASH
rpm exec --bp rpmb -bp
rpm exec --bc rpmb -bc
rpm exec --bi rpmb -bi
rpm exec --bl rpmb -bl
rpm exec --ba rpmb -ba
rpm exec --bb rpmb -bb
rpm exec --bs rpmb -bs
rpm exec --tp rpmb -tp
rpm exec --tc rpmb -tc
rpm exec --ti rpmb -ti
rpm exec --tl rpmb -tl
rpm exec --ta rpmb -ta
rpm exec --tb rpmb -tb
rpm exec --ts rpmb -ts
rpm exec --rebuild rpmb --rebuild
rpm exec --recompile rpmb --recompile
rpm exec --clean rpmb --clean
rpm exec --rmsource rpmb --rmsource
rpm exec --rmspec rpmb --rmspec
rpm exec --target rpmb --target
rpm exec --short-circuit rpmb --short-circuit
rpm exec --initdb rpmd --initdb
rpm exec --rebuilddb rpmd --rebuilddb
rpm exec --verifydb rpmd --verifydb
#rpm exec -e rpme -e
#rpm exec --erase rpme --erase
#rpm exec -U rpmu -U
#rpm exec --upgrade rpmu --upgrade
rpm exec --addsign rpmk --addsign
rpm exec -K rpmk -K
rpm exec --checksig rpmk --checksig
rpm exec --resign rpmk --resign
rpm exec -q rpmq -q
rpm exec --query rpmq --query
rpm exec --querytags rpmq --querytags
rpm exec -V rpmv -V
rpm exec -y rpmv -y
rpm exec --verify rpmv --verify
rpm alias --with --define "_with_!#:+ --with-!#:+" \
--POPTdesc=$"enable configure <option> for build" \
--POPTargs=$"<option>"
rpm alias --without --define "_without_!#:+ --without-!#:+" \
--POPTdesc=$"disable configure <option> for build" \
--POPTargs=$"<option>"
#==============================================================================
rpmb alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmb alias --ftpport --define '_ftpport !#:+'
rpmb alias --ftpproxy --define '_ftpproxy !#:+'
rpmb alias --httpport --define '_httpport !#:+'
rpmb alias --httpproxy --define '_httpproxy !#:+'
rpmb alias --timecheck --define '_timecheck !#:+'
rpmb alias --with --define "_with_!#:+ --with-!#:+" \
--POPTdesc=$"enable configure <option> for build" \
--POPTargs=$"<option>"
rpmb alias --without --define "_without_!#:+ --without-!#:+" \
--POPTdesc=$"disable configure <option> for build" \
--POPTargs=$"<option>"
#==============================================================================
rpmbuild alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmbuild alias --ftpport --define '_ftpport !#:+'
rpmbuild alias --ftpproxy --define '_ftpproxy !#:+'
rpmbuild alias --httpport --define '_httpport !#:+'
rpmbuild alias --httpproxy --define '_httpproxy !#:+'
rpmbuild alias --timecheck --define '_timecheck !#:+'
rpmbuild alias --with --define "_with_!#:+ --with-!#:+" \
--POPTdesc=$"enable configure <option> for build" \
--POPTargs=$"<option>"
rpmbuild alias --without --define "_without_!#:+ --without-!#:+" \
--POPTdesc=$"disable configure <option> for build" \
--POPTargs=$"<option>"
#==============================================================================
rpmd alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmd alias --ftpport --define '_ftpport !#:+'
rpmd alias --ftpproxy --define '_ftpproxy !#:+'
rpmd alias --httpport --define '_httpport !#:+'
rpmd alias --httpproxy --define '_httpproxy !#:+'
#==============================================================================
rpmdb alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmdb alias --ftpport --define '_ftpport !#:+'
rpmdb alias --ftpproxy --define '_ftpproxy !#:+'
rpmdb alias --httpport --define '_httpport !#:+'
rpmdb alias --httpproxy --define '_httpproxy !#:+'
#==============================================================================
rpme alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpme alias --ftpport --define '_ftpport !#:+'
rpme alias --ftpproxy --define '_ftpproxy !#:+'
rpme alias --httpport --define '_httpport !#:+'
rpme alias --httpproxy --define '_httpproxy !#:+'
#==============================================================================
rpmi alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmi alias --ftpport --define '_ftpport !#:+'
rpmi alias --ftpproxy --define '_ftpproxy !#:+'
rpmi alias --httpport --define '_httpport !#:+'
rpmi alias --httpproxy --define '_httpproxy !#:+'
#==============================================================================
rpmk alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmk alias --ftpport --define '_ftpport !#:+'
rpmk alias --ftpproxy --define '_ftpproxy !#:+'
rpmk alias --httpport --define '_httpport !#:+'
rpmk alias --httpproxy --define '_httpproxy !#:+'
#==============================================================================
rpmq alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmq alias --ftpport --define '_ftpport !#:+'
rpmq alias --ftpproxy --define '_ftpproxy !#:+'
rpmq alias --httpport --define '_httpport !#:+'
rpmq alias --httpproxy --define '_httpproxy !#:+'
rpmq alias --scripts --qf '\
%|PREIN?{preinstall scriptlet\
%|PREINPROG?{ (through %{PREINPROG})}|:\n%{PREIN}\n}:\
{%|PREINPROG?{preinstall program: %{PREINPROG}\n}|}|\
\
%|POSTIN?{postinstall scriptlet\
%|POSTINPROG?{ (through %{POSTINPROG})}|:\n%{POSTIN}\n}:\
{%|POSTINPROG?{postinstall program: %{POSTINPROG}\n}|}|\
\
%|PREUN?{preuninstall scriptlet\
%|PREUNPROG?{ (through %{PREUNPROG})}|:\n%{PREUN}\n}:\
{%|PREUNPROG?{preuninstall program: %{PREUNPROG}\n}|}|\
\
%|POSTUN?{postuninstall scriptlet\
%|POSTUNPROG?{ (through %{POSTUNPROG})}|:\n%{POSTUN}\n}:\
{%|POSTUNPROG?{postuninstall program: %{POSTUNPROG}\n}|}|\
\
%|VERIFYSCRIPT?{verify scriptlet:\n%{VERIFYSCRIPT}\n}|\
' \
--POPTdesc=$"list install/erase scriptlets from package(s)"
rpmq alias --conflicts --qf \
"[%{CONFLICTNAME} %{CONFLICTFLAGS:depflags} %{CONFLICTVERSION}\n]" \
--POPTdesc=$"list capabilities this package conflicts with"
rpmq alias --obsoletes --qf \
"[%{OBSOLETENAME} %|OBSOLETEFLAGS?{%{OBSOLETEFLAGS:depflags} %{OBSOLETEVERSION}}:{}|\n]" \
--POPTdesc=$"list other packages removed by installing this package"
rpmq alias --provides --qf \
"[%{PROVIDENAME} %|PROVIDEFLAGS?{%{PROVIDEFLAGS:depflags} %{PROVIDEVERSION}}:{}|\n]" \
--POPTdesc=$"list capabilities that this package provides"
rpmq alias --requires --qf \
"[%{REQUIRENAME} %{REQUIREFLAGS:depflags} %{REQUIREVERSION}\n]" \
--POPTdesc=$"list capabilities required by package(s)"
rpmq alias -R --requires
rpmq alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocateable)}|\n\
Version : %-27{VERSION} Vendor: %{VENDOR}\n\
Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\
Install date: %|INSTALLTIME?{%-27{INSTALLTIME:date}}:{(not installed) }| Build Host: %{BUILDHOST}\n\
Group : %-27{GROUP} Source RPM: %{SOURCERPM}\n\
Size : %-27{SIZE}%|LICENSE?{ License: %{LICENSE}}|\n\
%|PACKAGER?{Packager : %{PACKAGER}\n}|\
%|URL?{URL : %{URL}\n}|\
Summary : %{SUMMARY}\n\
Description :\n%{DESCRIPTION}\n' \
--POPTdesc=$"list descriptive information from package(s)"
rpmq alias --changelog --qf '[* %{CHANGELOGTIME:day} %{CHANGELOGNAME}\n\n%{CHANGELOGTEXT}\n\n]' \
--POPTdesc=$"list change logs for this package"
rpmq alias --triggerscripts --qf '\
[trigger%{TRIGGERTYPE} script (through %{TRIGGERSCRIPTPROG}) -- %{TRIGGERCONDS}\n\
%{TRIGGERSCRIPTS}\n]'
rpmq alias --triggers --triggerscripts \
--POPTdesc=$"list trigger scriptlets from package(s)"
rpmq alias --last --qf '%|INSTALLTIME?{%{INSTALLTIME}}:{000000000}| %{NAME}-%{VERSION}-%{RELEASE} %|INSTALLTIME?{%{INSTALLTIME:date}}:{(not installed)}|\n' \
--pipe "sort -r -n | sed 's,^[0-9]\+ ,,' | awk '{printf(\"%-45s %-s\n\", $1, substr($0,length($1)+2))}' " \
--POPTdesc=$"list package(s) by install time, most recent first"
rpmq alias --filesbypkg --qf '[%-25{=NAME} %{FILENAMES}\n]' \
--POPTdesc=$"list all files from each package"
#==============================================================================
rpmu alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmu alias --ftpport --define '_ftpport !#:+'
rpmu alias --ftpproxy --define '_ftpproxy !#:+'
rpmu alias --httpport --define '_httpport !#:+'
rpmu alias --httpproxy --define '_httpproxy !#:+'
#==============================================================================
rpmv alias --dbpath --define '_dbpath !#:+' \
--POPTdesc=$"use <dir> as the directory for the database" \
--POPTargs=$"<dir>"
rpmv alias --ftpport --define '_ftpport !#:+'
rpmv alias --ftpproxy --define '_ftpproxy !#:+'
rpmv alias --httpport --define '_httpport !#:+'
rpmv alias --httpproxy --define '_httpproxy !#:+'
# \endverbatim
#*/
|