1yum(8) yum(8)
2
3
4
6 yum - Yellowdog Updater Modified
7
9 yum [options] [command] [package ...]
10
12 yum is an interactive, rpm based, package manager. It can automatically
13 perform system updates, including dependency analysis and obsolete pro‐
14 cessing based on "repository" metadata. It can also perform installa‐
15 tion of new packages, removal of old packages and perform queries on
16 the installed and/or available packages among many other commands/ser‐
17 vices (see below). yum is similar to other high level package managers
18 like apt-get and smart.
19
20 While there are some graphical interfaces directly to the yum code,
21 more recent graphical interface development is happening with Pack‐
22 ageKit and the gnome-packagekit application.
23
24 command is one of:
25 * install package1 [package2] [...]
26 * update [package1] [package2] [...]
27 * update-to [package1] [package2] [...]
28 * check-update
29 * upgrade [package1] [package2] [...]
30 * upgrade-to [package1] [package2] [...]
31 * distribution-synchronization [package1] [package2] [...]
32 * remove | erase package1 [package2] [...]
33 * list [...]
34 * info [...]
35 * provides | whatprovides feature1 [feature2] [...]
36 * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
37 * makecache
38 * groupinstall group1 [group2] [...]
39 * groupupdate group1 [group2] [...]
40 * grouplist [hidden] [groupwildcard] [...]
41 * groupremove group1 [group2] [...]
42 * groupinfo group1 [...]
43 * search string1 [string2] [...]
44 * shell [filename]
45 * resolvedep dep1 [dep2] [...]
46 * localinstall rpmfile1 [rpmfile2] [...]
47 (maintained for legacy reasons only - use install)
48 * localupdate rpmfile1 [rpmfile2] [...]
49 (maintained for legacy reasons only - use update)
50 * reinstall package1 [package2] [...]
51 * downgrade package1 [package2] [...]
52 * deplist package1 [package2] [...]
53 * repolist [all|enabled|disabled]
54 * version [ all | installed | available | group-* | nogroups* | grou‐
55 plist | groupinfo ]
56 * history [info|list|packages-list|packages-info|summary|addon-
57 info|redo|undo|rollback|new|sync|stats]
58 * load-transaction [txfile]
59 * check
60 * help [command]
61
62 Unless the --help or -h option is given, one of the above commands must
63 be present.
64
65 Repository configuration is honored in all operations.
66
67 install
68 Is used to install the latest version of a package or group of
69 packages while ensuring that all dependencies are satisfied.
70 (See Specifying package names for more information) If no pack‐
71 age matches the given package name(s), they are assumed to be a
72 shell glob and any matches are then installed. If the name
73 starts with an @ character the rest of the name is used as
74 though passed to the groupinstall command. If the name starts
75 with a - character, then a search is done within the transaction
76 and any matches are removed. If the name is a file, then install
77 works like localinstall. If the name doesn't match a package,
78 then package "provides" are searched (e.g. "_sqlite‐
79 cache.so()(64bit)") as are filelists (Eg. "/usr/bin/yum"). Also
80 note that for filelists, wildcards will match multiple packages.
81
82 update If run without any packages, update will update every currently
83 installed package. If one or more packages or package globs are
84 specified, Yum will only update the listed packages. While
85 updating packages, yum will ensure that all dependencies are
86 satisfied. (See Specifying package names for more information)
87 If the packages or globs specified match to packages which are
88 not currently installed then update will not install them.
89 update operates on groups, files, provides and filelists just
90 like the "install" command.
91
92 If the main obsoletes configure option is true (default) or the
93 --obsoletes flag is present yum will include package obsoletes
94 in its calculations - this makes it better for distro-version
95 changes, for example: upgrading from somelinux 8.0 to somelinux
96 9.
97
98 Note that "update" works on installed packages first, and only
99 if there are no matches does it look for available packages. The
100 difference is most noticeable when you do "update foo-1-2" which
101 will act exactly as "update foo" if foo-1-2 is installed. You
102 can use the "update-to" if you'd prefer that nothing happen in
103 the above case.
104
105 update-to
106 This command works like "update" but always specifies the ver‐
107 sion of the package we want to update to.
108
109 check-update
110 Implemented so you could know if your machine had any updates
111 that needed to be applied without running it interactively.
112 Returns exit value of 100 if there are packages available for an
113 update. Also returns a list of the packages to be updated in
114 list format. Returns 0 if no packages are available for update.
115 Returns 1 if an error occurred. Running in verbose mode also
116 shows obsoletes.
117
118 upgrade
119 Is the same as the update command with the --obsoletes flag set.
120 See update for more details.
121
122 upgrade-to
123 This command works like "upgrade" but always specifies the ver‐
124 sion of the package we want to update to.
125
126 distribution-synchronization or distro-sync
127 Synchronizes the installed package set with the latest packages
128 available, this is done by either obsoleting, upgrading or down‐
129 grading as appropriate. This will "normally" do the same thing
130 as the upgrade command however if you have the package FOO
131 installed at version 4, and the latest available is only version
132 3, then this command will downgrade FOO to version 3.
133
134 This command does not perform operations on groups, local pack‐
135 ages or negative selections.
136
137 remove or erase
138 Are used to remove the specified packages from the system as
139 well as removing any packages which depend on the package being
140 removed. remove operates on groups, files, provides and
141 filelists just like the "install" command.(See Specifying pack‐
142 age names for more information)
143
144 Note that "yum" is included in the protected_packages configura‐
145 tion, by default. So you can't accidentally remove yum itself.
146
147 list Is used to list various information about available packages;
148 more complete details are available in the List Options section
149 below.
150
151 provides or whatprovides
152 Is used to find out which package provides some feature or file.
153 Just use a specific name or a file-glob-syntax wildcards to list
154 the packages available or installed that provide that feature or
155 file.
156
157 search This is used to find packages when you know something about the
158 package but aren't sure of it's name. By default search will try
159 searching just package names and summaries, but if that "fails"
160 it will then try descriptions and url.
161
162 Yum search orders the results so that those packages matching
163 more terms will appear first.
164
165 You can force searching everything by specifying "all" as the
166 first argument.
167
168 info Is used to list a description and summary information about
169 available packages; takes the same arguments as in the List
170 Options section below.
171
172 clean Is used to clean up various things which accumulate in the yum
173 cache directory over time. More complete details can be found
174 in the Clean Options section below.
175
176 makecache
177 Is used to download and make usable all the metadata for the
178 currently enabled yum repos.
179
180 groupinstall
181 Is used to install all of the individual packages in a group, of
182 the specified types (this works as if you'd taken each of those
183 package names and put them on the command line for a "yum
184 install" command).
185 The group_package_types configuration option specifies which
186 types will be installed.
187
188 groupupdate
189 Is just an alias for groupinstall, which will do the right thing
190 because "yum install X" and "yum update X" do the same thing,
191 when X is already installed.
192
193 grouplist
194 Is used to list the available groups from all yum repos. Groups
195 are marked as "installed" if all mandatory packages are
196 installed, or if a group doesn't have any mandatory packages
197 then it is installed if any of the optional or default package
198 are installed. The optional "hidden" argument will also list
199 groups marked as not being "user visible". If you pass the -v
200 option, to enable verbose mode, then the groupids are displayed.
201
202 groupremove
203 Is used to remove all of the packages in a group, unlike
204 "groupinstall" this will remove everything regardless of
205 group_package_types. It is worth pointing out that packages can
206 be in more than one group, so "groupinstall X Y" followed by
207 "groupremove Y" does not do give you the same result as
208 "groupinstall X".
209
210 The groupremove_leaf_only configuration changes the behaviour of
211 this command to only remove packages which aren't required by
212 something else.
213
214 groupinfo
215 Is used to give the description and package list of a group (and
216 which type those packages are marked as). Note that you can use
217 the yum-filter-data and yum-list-data plugins to get/use the
218 data the other way around (Ie. what groups own packages need
219 updating). If you pass the -v option, to enable verbose mode,
220 then the package names are matched against installed/available
221 packages similar to the list command.
222
223 shell Is used to enter the 'yum shell', when a filename is specified
224 the contents of that file is executed in yum shell mode. See
225 yum-shell(8) for more info
226
227 resolvedep
228 Is used to list packages providing the specified dependencies,
229 at most one package is listed per dependency.
230
231 localinstall
232 Is used to install a set of local rpm files. If required the
233 enabled repositories will be used to resolve dependencies. Note
234 that the install command will do a local install, if given a
235 filename. This option is maintained for legacy reasons only.
236
237 localupdate
238 Is used to update the system by specifying local rpm files. Only
239 the specified rpm files of which an older version is already
240 installed will be installed, the remaining specified packages
241 will be ignored. If required the enabled repositories will be
242 used to resolve dependencies. Note that the update command will
243 do a local update, if given a filename. This option is main‐
244 tained for legacy reasons only.
245
246 reinstall
247 Will reinstall the identically versioned package as is currently
248 installed. This does not work for "installonly" packages, like
249 Kernels. reinstall operates on groups, files, provides and
250 filelists just like the "install" command.
251
252 downgrade
253 Will try and downgrade a package from the version currently
254 installed to the previously highest version (or the specified
255 version). The depsolver will not necessarily work, but if you
256 specify all the packages it should work (and thus. all the sim‐
257 ple cases will work). Also this does not work for "installonly"
258 packages, like Kernels. downgrade operates on groups, files,
259 provides, filelists and rpm files just like the "install" com‐
260 mand.
261
262 deplist
263 Produces a list of all dependencies and what packages provide
264 those dependencies for the given packages.
265
266 repolist
267 Produces a list of configured repositories. The default is to
268 list all enabled repositories. If you pass -v, for verbose mode,
269 more information is listed. If the first argument is 'enabled',
270 'disabled' or 'all' then the command will list those types of
271 repos.
272
273 You can pass repo id or name arguments, or wildcards which to
274 match against both of those. However if the id or name matches
275 exactly then the repo will be listed even if you are listing
276 enabled repos. and it is disabled.
277
278 In non-verbose mode the first column will start with a '*' if
279 the repo. has metalink data and the latest metadata is not
280 local. For non-verbose mode the last column will also display
281 the number of packages in the repo. and (if there are any user
282 specified excludes) the number of packages excluded.
283
284 One last special feature of repolist, is that if you are in non-
285 verbose mode then yum will ignore any repo errors and output the
286 information it can get (Eg. "yum clean all; yum -C repolist"
287 will output something, although the package counts/etc. will be
288 zeroed out).
289
290 version
291 Produces a "version" of the rpmdb, and of the enabled reposito‐
292 ries if "all" is given as the first argument. You can also spec‐
293 ify version groups in the version-groups configuration file. If
294 you pass -v, for verbose mode, more information is listed. The
295 version is calculated by taking an SHA1 hash of the packages (in
296 sorted order), and the checksum_type/checksum_data entries from
297 the yumdb. Note that this rpmdb version is now also used signif‐
298 icantly within yum (esp. in yum history).
299
300 The version command will now show "groups" of packages as a sep‐
301 arate version, and so takes sub-commands:
302
303 "version grouplist" - List the defined version groups.
304
305 "version groupinfo" - Get the complete list of packages within
306 one or more version groups.
307
308 "version installed" - This is the default, only show the version
309 information for installed packages.
310
311 "version available" - Only show the version information for
312 available packages.
313
314 "version all" - Show the version information for installed and
315 available packages.
316
317 "version nogroups | nogroups-*" - Just show the main version
318 information.
319
320 "version group-*" - Just show the grouped version information,
321 if more arguments are given then only show the data for those
322 groups.
323
324
325 history
326 The history command allows the user to view what has happened in
327 past transactions (assuming the history_record config. option is
328 set). You can use info/list/packages-list/packages-info/summary
329 to view what happened, undo/redo/rollback to act on that infor‐
330 mation and new to start a new history file.
331
332 The info/list/summary commands take either a transaction id or a
333 package (with wildcards, as in Specifying package names), all
334 three can also be passed no arguments. list can be passed the
335 keyword "all" to list all the transactions.
336
337 The info command can also take ranges of transaction ids, of the
338 form start..end, which will then display a merged history as if
339 all the transactions in the range had happened at once.
340 Eg. "history info 1..4" will merge the first four transactions
341 and display them as a single transaction.
342
343 The packages-list/packages-info commands takes a package (with
344 wildcards, as in Specifying package names). And show data from
345 the point of view of that package.
346
347 The undo/redo/rollback commands take either a single transaction
348 id or the keyword last and an offset from the last transaction
349 (Eg. if you've done 250 transactions, "last" refers to transac‐
350 tion 250, and "last-4" refers to transaction 246).
351
352 The undo/redo commands act on the specified transaction,
353 undo'ing or repeating the work of that transaction. While the
354 rollback command will undo all transactions up to the point of
355 the specified transaction. For example, if you have 3 transac‐
356 tions, where package A; B and C where installed respectively.
357 Then "undo 1" will try to remove package A, "redo 1" will try to
358 install package A (if it is not still installed), and "rollback
359 1" will try to remove packages B and C. Note that after a "roll‐
360 back 1" you will have a fourth transaction, although the ending
361 rpmdb version (see: yum version) should be the same in transac‐
362 tions 1 and 4.
363
364 The addon-info command takes a transaction ID, and the packages-
365 list command takes a package (with wildcards).
366
367 The stats command shows some statistics about the current his‐
368 tory DB.
369
370 The sync commands allows you to change the rpmdb/yumdb data
371 stored for any installed packages, to whatever is in the current
372 rpmdb/yumdb (this is mostly useful when this data was not stored
373 when the package went into the history DB).
374
375 In "history list" you can change the behaviour of the 2nd column
376 via the configuration option history_list_view.
377
378 In "history list" output the Altered column also gives some
379 extra information if there was something not good with the
380 transaction (this is also shown at the end of the package column
381 in the packages-list command).
382
383 > - The rpmdb was changed, outside yum, after the transaction.
384 < - The rpmdb was changed, outside yum, before the transaction.
385 * - The transaction aborted before completion.
386 # - The transaction completed, but with a non-zero status.
387 E - The transaction completed fine, but had warning/error output
388 during the transaction.
389 P - The transaction completed fine, but problems already existed
390 in the rpmdb.
391 s - The transaction completed fine, but --skip-broken was
392 enabled and had to skip some packages.
393
394
395
396 load-transaction
397 This command will re-load a saved yum transaction file, this
398 allows you to run a transaction on one machine and then use it
399 on another. The two common ways to get a saved yum transaction
400 file are from "yum -q history addon-info last saved_tx" or via
401 the automatic saves in $TMPDIR/yum_save_tx.* when a transaction
402 is solved but not run.
403
404
405 check Checks the local rpmdb and produces information on any problems
406 it finds. You can pass the check command the arguments "depen‐
407 dencies", "duplicates", "obsoletes" or "provides", to limit the
408 checking that is performed (the default is "all" which does
409 all).
410
411
412 help Produces help, either for all commands or if given a command
413 name then the help for that particular command.
414
416 Most command line options can be set using the configuration file as
417 well and the descriptions indicate the necessary configuration option
418 to set.
419
420 -h, --help
421 Help; display a help message and then quit.
422
423 -y, --assumeyes
424 Assume yes; assume that the answer to any question which would
425 be asked is yes.
426 Configuration Option: assumeyes
427
428 --assumeno
429 Assume no; assume that the answer to any question which would be
430 asked is no. This option overrides assumeyes, but is still sub‐
431 ject to alwaysprompt.
432 Configuration Option: assumeno
433
434 -c, --config=[config file]
435 Specifies the config file location - can take HTTP and FTP URLs
436 and local file paths.
437
438 -q, --quiet
439 Run without output. Note that you likely also want to use -y.
440
441 -v, --verbose
442 Run with a lot of debugging output.
443
444 -d, --debuglevel=[number]
445 Sets the debugging level to [number] - turns up or down the
446 amount of things that are printed. Practical range: 0 - 10
447 Configuration Option: debuglevel
448
449 -e, --errorlevel=[number]
450 Sets the error level to [number] Practical range 0 - 10. 0 means
451 print only critical errors about which you must be told. 1 means
452 print all errors, even ones that are not overly important. 1+
453 means print more errors (if any) -e 0 is good for cron jobs.
454 Configuration Option: errorlevel
455
456 --rpmverbosity=[name]
457 Sets the debug level to [name] for rpm scriptlets. 'info' is the
458 default, other options are: 'critical', 'emergency', 'error',
459 'warn' and 'debug'.
460 Configuration Option: rpmverbosity
461
462 -R, --randomwait=[time in minutes]
463 Sets the maximum amount of time yum will wait before performing
464 a command - it randomizes over the time.
465
466 -C, --cacheonly
467 Tells yum to run entirely from system cache - does not download
468 or update any headers unless it has to to perform the requested
469 action. If you're using this as a user yum will not use the tem‐
470 pcache for the user but will only use the system cache in the
471 system cachedir.
472
473 --version
474 Reports the yum version number and installed package versions
475 for everything in history_record_packages (can be added to by
476 plugins).
477
478 --showduplicates
479 Doesn't limit packages to their latest versions in the info,
480 list and search commands (will also affect plugins which use the
481 doPackageLists() API).
482
483 --installroot=root
484 Specifies an alternative installroot, relative to which all
485 packages will be installed.
486 Configuration Option: installroot
487
488 --enablerepo=repoidglob
489 Enables specific repositories by id or glob that have been dis‐
490 abled in the configuration file using the enabled=0 option.
491 Configuration Option: enabled
492
493 --disablerepo=repoidglob
494 Disables specific repositories by id or glob.
495 Configuration Option: enabled
496
497 --obsoletes
498 This option only has affect for an update, it enables yum´s
499 obsoletes processing logic. For more information see the update
500 command above.
501 Configuration Option: obsoletes
502
503 -x, --exclude=package
504 Exclude a specific package by name or glob from updates on all
505 repositories. Configuration Option: exclude
506
507 --color=[always|auto|never]
508 Display colorized output automatically, depending on the output
509 terminal, always (using ANSI codes) or never. Note that some
510 commands (Eg. list and info) will do a little extra work when
511 color is enabled. Configuration Option: color
512
513 --disableexcludes=[all|main|repoid]
514 Disable the excludes defined in your config files. Takes one of
515 three options:
516 all == disable all excludes
517 main == disable excludes defined in [main] in yum.conf
518 repoid == disable excludes defined for that repo
519
520 --disableplugin=plugin
521 Run with one or more plugins disabled, the argument is a comma
522 separated list of wildcards to match against plugin names.
523
524 --noplugins
525 Run with all plugins disabled.
526 Configuration Option: plugins
527
528 --nogpgcheck
529 Run with GPG signature checking disabled.
530 Configuration Option: gpgcheck
531
532 --skip-broken
533 Resolve depsolve problems by removing packages that are causing
534 problems from the transaction.
535 Configuration Option: skip_broken
536
537 --releasever=version
538 Pretend the current release version is the given string. This is
539 very useful when combined with --installroot. Note that with the
540 default upstream cachedir, of /var/cache/yum, using this option
541 will corrupt your cache (and you can use $releasever in your
542 cachedir configuration to stop this).
543
544 -t, --tolerant
545 This option makes yum go slower, checking for things that
546 shouldn't be possible making it more tolerant of external
547 errors.
548
549 --downloadonly
550 Don't update, just download.
551
552 --downloaddir=directory
553 Specifies an alternate directory to store packages.
554
555 --setopt=option=value
556 Set any config option in yum config or repo files. For options
557 in the global config just use: --setopt=option=value for repo
558 options use: --setopt=repoid.option=value
559
561 The following are the ways which you can invoke yum in list mode. Note
562 that all list commands include information on the version of the pack‐
563 age.
564
565 OUTPUT
566
567
568 The format of the output of yum list is:
569
570 name.arch [epoch:]version-release repo or @installed-from-repo
571
572
573 yum list [all | glob_exp1] [glob_exp2] [...]
574 List all available and installed packages.
575
576 yum list available [glob_exp1] [...]
577 List all packages in the yum repositories available to be
578 installed.
579
580 yum list updates [glob_exp1] [...]
581 List all packages with updates available in the yum reposito‐
582 ries.
583
584 yum list installed [glob_exp1] [...]
585 List the packages specified by args. If an argument does not
586 match the name of an available package, it is assumed to be a
587 shell-style glob and any matches are printed.
588
589 yum list extras [glob_exp1] [...]
590 List the packages installed on the system that are not available
591 in any yum repository listed in the config file.
592
593 yum list obsoletes [glob_exp1] [...]
594 List the packages installed on the system that are obsoleted by
595 packages in any yum repository listed in the config file.
596
597 yum list recent
598 List packages recently added into the repositories. This is
599 often not helpful, but what you may really want to use is "yum
600 list-updateinfo new" from the security yum plugin.
601
603 A package can be referred to for install, update, remove, list, info
604 etc with any of the following as well as globs of any of the following:
605
606 name
607 name.arch
608 name-ver
609 name-ver-rel
610 name-ver-rel.arch
611 name-epoch:ver-rel.arch
612 epoch:name-ver-rel.arch
613
614 For example: yum remove kernel-2.4.1-10.i686
615 this will remove this specific kernel-ver-rel.arch.
616
617 Or: yum list available 'foo*'
618 will list all available packages that match 'foo*'. (The
619 single quotes will keep your shell from expanding the globs.)
620
622 The following are the ways which you can invoke yum in clean mode. Note
623 that "all files" in the commands below means "all files in currently
624 enabled repositories". If you want to also clean any (temporarily)
625 disabled repositories you need to use --enablerepo='*' option.
626
627
628 yum clean expire-cache
629 Eliminate the local data saying when the metadata and mir‐
630 rorlists were downloaded for each repo. This means yum will
631 revalidate the cache for each repo. next time it is used. How‐
632 ever if the cache is still valid, nothing significant was
633 deleted.
634
635
636 yum clean packages
637 Eliminate any cached packages from the system. Note that pack‐
638 ages are not automatically deleted after they are downloaded.
639
640
641 yum clean headers
642 Eliminate all of the header files, which old versions of yum
643 used for dependency resolution.
644
645
646 yum clean metadata
647 Eliminate all of the files which yum uses to determine the
648 remote availability of packages. Using this option will force
649 yum to download all the metadata the next time it is run.
650
651
652 yum clean dbcache
653 Eliminate the sqlite cache used for faster access to metadata.
654 Using this option will force yum to download the sqlite metadata
655 the next time it is run, or recreate the sqlite metadata if
656 using an older repo.
657
658
659 yum clean rpmdb
660 Eliminate any cached data from the local rpmdb.
661
662
663 yum clean plugins
664 Tell any enabled plugins to eliminate their cached data.
665
666
667 yum clean all
668 Does all of the above.
669
670
672 Yum can be extended through the use of plugins. A plugin is a Python
673 ".py" file which is installed in one of the directories specified by
674 the pluginpath option in yum.conf. For a plugin to work, the following
675 conditions must be met:
676
677 1. The plugin module file must be installed in the plugin path as just
678 described.
679
680 2. The global plugins option in /etc/yum.conf must be set to `1'.
681
682 3. A configuration file for the plugin must exist in /etc/yum/plugin‐
683 conf.d/<plugin_name>.conf and the enabled setting in this file must set
684 to `1'. The minimal content for such a configuration file is:
685
686 [main]
687 enabled = 1
688
689 See the yum.conf(5) man page for more information on plugin related
690 configuration options.
691
692
694 /etc/yum.conf
695 /etc/yum/version-groups.conf
696 /etc/yum.repos.d/
697 /etc/yum/pluginconf.d/
698 /var/cache/yum/
699
700
702 pkcon [4m(1)
703 yum.conf [4m(5)
704 yum-updatesd [4m(8)
705 package-cleanup [4m(1)
706 repoquery [4m(1)
707 yum-complete-transaction [4m(1)
708 yumdownloader [4m(1)
709 yum-utils [4m(1)
710 yum-security [4m(8)
711 http://yum.baseurl.org/
712 http://yum.baseurl.org/wiki/Faq
713 yum search yum
714
715
717 See the Authors file included with this program.
718
719
721 There of course aren't any bugs, but if you find any, you should first
722 consult the FAQ mentioned above and then email the mailing list:
723 yum@lists.baseurl.org or filed in bugzilla.
724
725
726
727Seth Vidal yum(8)