3

I would like to install all TexLive packages available for Fedora using Yum. All of them have the format texlive-package. Is there a way to do it all without installing one package at a time (there are more than 5000!)?

1

If all the packages follow the patterntextlive-<package> you can use a regex to install them like so:

$ sudo yum install texlive-\*

You can also specify the pattern like this:

$ sudo yum install 'texlive-*'

NOTE: In either case we're protecting the pattern above from being interpreted as a glob by theshell.

Example

$ sudo yum install texlive-\*
...
...
 texlive-zxjafbfont              noarch      3:svn28539.0-0.1.fc19       updates    16 k
 texlive-zxjafbfont-doc          noarch      3:svn28539.0-0.1.fc19       updates    16 k
 texlive-zxjafont                noarch      3:svn30105.0.2-0.1.fc19     updates    18 k
 texlive-zxjafont-doc            noarch      3:svn30105.0.2-0.1.fc19     updates    131 k
 texlive-zxjatype                noarch      3:svn28541.0.6-0.1.fc19     updates    24 k
 texlive-zxjatype-doc            noarch      3:svn28541.0.6-0.1.fc19     updates    149 k
Installing for dependencies:
 python-pygments                 noarch      1.6-1.fc19                  updates    965 k
 t1utils                         x86_64      1.37-4.fc19                 fedora     70 k
 teckit                          x86_64      2.5.1-9.fc19                fedora     282 k
 zziplib                         x86_64      0.13.62-2.fc19              fedora     80 k

Transaction Summary
===============================================================================
Install  4867 Packages (+4 Dependent packages)

Total download size: 1.6 G
Installed size: 2.9 G
Is this ok [y/d/N]:·

Specifying package patterns

I highly encourage anyone that works with yum to thoroughly read the section titled: "SPECIFYING PACKAGE NAMES".

excerpt

SPECIFYING PACKAGE NAMES

A package can be referred to for install, update, remove, list, info etc with any of the following as well as globs of any of the following:

         name
         name.arch
         name-ver
         name-ver-rel
         name-ver-rel.arch
         name-epoch:ver-rel.arch
         epoch:name-ver-rel.arch

         For example: yum remove kernel-2.4.1-10.i686
              this will remove this specific kernel-ver-rel.arch.

         Or:          yum list available 'foo*'
              will list all available packages that match 'foo*'. (The  
              single quotes will keep your shell from expanding the 
              globs.)
  • Huh, didn't know you could pass wildcards to "install". – Matthew Cline Oct 27 '14 at 5:21
  • Take a look at the man page for yum, it's all explained there. – slm Oct 27 '14 at 5:30
0
yum search texlive | grep '^texlive' | awk -p '{print $1}' > packages.txt
yum install $(cat packages.txt)

That will install every single TexLive package available.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.