Are you sure you want to cancel your subscription?

If you cancel, your subscription will remain active through the paid term. You will be able to reactivate the subscription until that date.

Sorry to see you go

Your subscription will remain active until . If you change your mind, you may rectivate your subscription anytime before that date.

Are you sure you want to reactivate?
Welcome Back!

Your subscription has been reactivated and you will continue to be charged on .

Reactivate Subscription

Thank you for choosing to reactivate your subscription. In order to lock in your previous subscription rate, you owe: .

Your Subscription term is from - .

Questions? Call Sales.

Payment Due:

Auto-Renew Subscription

To auto-renew your subscription you need to select or enter your payment method in "Your Account" under Manage Payments.

Click continue to set up your payments.

CBT Nuggets License Agreement

Unless otherwise stated all references to “training videos” or to “videos” includes both individual videos within a series, entire series, series packages, and streaming subscription access to CBT Nuggets content. All references to CBT or CBT Nuggets shall mean CBT Nuggets LLC, a Delaware limited liability company located at 44 Country Club Road, Ste. 150, Eugene, Oregon.

A CBT Nuggets license is defined as a single user license. Accounts may purchase multiple users, and each user is assigned a single license.

  • GRANT OF LICENSE. CBT Nuggets grants you a non-transferable, non-exclusive license to use the training videos contained in this package or streaming subscription access to CBT content (the “Products”), solely for internal use by your business or for your own personal use. You may not copy, reproduce, reverse engineer, translate, port, modify or make derivative works of the Products without the express consent of CBT. You may not rent, disclose, publish, sell, assign, lease, sublicense, market, or transfer the Products or use them in any manner not expressly authorized by this Agreement without the express consent of CBT. You shall not derive or attempt to derive the source code, source files or structure of all or any portion of the Products by reverse engineering, disassembly, decompilation or any other means. You do not receive any, and CBT Nuggets retains all, ownership rights in the Products. The Products are copyrighted and may not be copied, distributed or reproduced in any form, in whole or in part even if modified or merged with other Products. You shall not alter or remove any copyright notice or proprietary legend contained in or on the Products.
  • TERMINATION OF LICENSE. Once any applicable subscription period has concluded, the license granted by this Agreement shall immediately terminate and you shall have no further right to access, review or use in any manner any CBT Nuggets content. CBT reserves the right to terminate your subscription if, at its sole discretion, CBT believes you are in violation of this Agreement. CBT reserves the right to terminate your subscription if, at its sole discretion, CBT believes you have exceeded reasonable usage. In these events no refund will be made of any amounts previously paid to CBT.
  • DISCLAIMER OF WARRANTY AND LIABILITY. The products are provided to you on an “as is” and “with all faults” basis. You assume the entire risk of loss in using the products. The products are complex and may contain some nonconformities, defects or errors. CBT Nuggets does not warrant that the products will meet your needs, “expectations or intended use,” that operations of the products will be error-free or uninterrupted, or that all nonconformities can or will be corrected. CBT Nuggets makes and user receives no warranty, whether express or implied, and all warranties of merchantability, title, and fitness for any particular purpose are expressly excluded. In no event shall CBT Nuggets be liable to you or any third party for any damages, claim or loss incurred (including, without limitation, compensatory, incidental, indirect, special, consequential or exemplary damages, lost profits, lost sales or business, expenditures, investments, or commitments in connection with any business, loss of any goodwill, or damages resulting from lost data or inability to use data) irrespective of whether CBT Nuggets has been informed of, knew of, or should have known of the likelihood of such damages. This limitation applies to all causes of action in the aggregate including without limitation breach of contract, breach of warranty, negligence, strict liability, misrepresentation, and other torts. In no event shall CBT Nuggets’ liability to you or any third party exceed $100.00.
  • REMEDIES. In the event of any breach of the terms of the Agreement CBT reserves the right to seek and recover damages for such breach, including but not limited to damages for copyright infringement and for unauthorized use of CBT content. CBT also reserves the right to seek and obtain injunctive relief in addition to all other remedies at law or in equity.
  • MISCELLANEOUS. This is the exclusive Agreement between CBT Nuggets and you regarding its subject matter. You may not assign any part of this Agreement without CBT Nuggets’ prior written consent. This Agreement shall be governed by the laws of the State of Oregon and venue of any legal proceeding shall be in Lane County, Oregon. In any proceeding to enforce or interpret this Agreement, the prevailing party shall be entitled to recover from the losing party reasonable attorney fees, costs and expenses incurred by the prevailing party before and at any trial, arbitration, bankruptcy or other proceeding and in any appeal or review. You shall pay any sales tax, use tax, excise, duty or any other form of tax relating to the Products or transactions. If any provision of this Agreement is declared invalid or unenforceable, the remaining provisions of this Agreement shall remain in effect. Any notice to CBT under this Agreement shall be delivered by U.S. certified mail, return receipt requested, or by overnight courier to CBT Nuggets at the following address: 44 Club Rd Suite 150, Eugene, OR 97401 or such other address as CBT may designate.

CBT Nuggets reserves the right, in its sole discretion, to change, modify, add, or remove all or part of the License Agreement at any time, with or without notice.

Billing Agreement

  • By entering into a Billing Agreement with CBT Nuggets, you authorize CBT Nuggets to use automatic billing and to charge your credit card on a recurring basis.
  • You agree to pay subscription charges on a monthly basis, under the following terms and conditions:
    • CBT Nuggets will periodically charge your credit card each monthly billing cycle as your subscription charges become due;
    • All payments are non-refundable and charges made to the credit card under this agreement will constitute in effect a "sales receipt" and confirmation that services were rendered and received;
    • To terminate the recurring billing process and/or arrange for an alternative method of payment, you must notify CBT Nuggets at least 24 hours prior to the end of the monthly billing cycle;
    • You will not dispute CBT Nugget’s recurring billing charges with your credit card issuer so long as the amount in question was for periods prior to the receipt and acknowledgement of a written request to cancel your account or cancel individual licenses on your account.
  • You guarantee and warrant that you are the legal cardholder for the credit card associated with the account, and that you are legally authorized to enter into this recurring billing agreement.
  • You agree to indemnify, defend and hold CBT Nuggets harmless, against any liability pursuant to this authorization.
  • You agree that CBT Nuggets is not obligated to verify or confirm the amount for the purpose of processing these types of payments. You acknowledge and agree that Recurring Payments may be variable and scheduled to occur at certain times.
  • If your payment requires a currency conversion by us, the amount of the currency conversion fee will be determined at the time of your payment. You acknowledge that the exchange rate determined at the time of each payment transaction will differ and you agree to the future execution of payments being based on fluctuating exchange rates.

CBT Nuggets reserves the right, in its sole discretion, to change, modify, add, or remove all or part of the Billing Agreement at any time, with or without notice.

LPI Linux LPIC-1 101 and CompTIA Linux+

RPM & YUM Package Management

This video is only available to subscribers.
Start your 7-day free trial today.

A free trial includes:

  • Unlimited 24/7 access to our entire IT training video library.
  • Ability to train on the go with our mobile website and iOS/Android apps.
  • Note-taking, bookmarking, speed control, and closed captioning features.

LPIC1 & CompTIA Linux+ Intro

Hardware Settings

Boot the System

Change Runlevels and Reboot or Shutdown the System

Design Hard Disk Layout

Install a Boot Manager

Manage Shared Libraries

Debian Package Management

RPM & YUM Package Management

00:00:00 - All right. Welcome to nugget 102.5. Now, last time we talked
00:00:04 - about the Deb or the APT Package Management System, and
00:00:10 - and Debian systems, one, two, things like that, and this time we're going
00:00:12 - to talk about RPMs, which is the Red Hat package manager, and
00:00:18 - YUM, which is a great way to interface with that. Now, RPM just
00:00:21 - like dpkg from before, is the, the actual program that
00:00:25 - manipulates files, one at a time. There's a couple of
00:00:29 - things that are specified on the test, like rpm2cpio.
00:00:33 - We're also going to talk briefly about Alien, which does the same
00:00:36 - kind of a thing. We're going to talk about YUM, which is
00:00:39 - kinda like the answer to APT or apt-get or aptitude in
00:00:43 - the Debian world. This is a program that will get dependencies,
00:00:46 - it will install the RPM file you download, and then where to
00:00:50 - configured those, which are going to be, you know, in the configuration
00:00:53 - and then repositories, and then there's a neat program called yumdownloader,
00:00:56 - which, not surprisingly, downloads files, so anyway,
00:01:00 - instead of going through like I did last time, and start with RPM, I'm
00:01:03 - actually going to go backwards. I want to talk about YUM and yumdownloader
00:01:07 - first, and then we'll talk about the underpinning
00:01:10 - RPM program that makes it all work. So let's take a look at
00:01:13 - YUM and yumdownloader real quick, so you get a feel for how
00:01:17 - things work in the Red Hat or Red Hat variant, like SUSE, Mandriva,
00:01:21 - those kind of,
00:01:23 - those kind of distributions. All right, let's check it out.
00:01:26 - So here I want to show you YUM, and YUM is a lot
00:01:29 - like Apget was in the Debian-based operating systems,
00:01:32 - or Debian-based Linux distributions, and it works pretty simply,
00:01:36 - YUM, let's say we're going to install openssh-clients,
00:01:42 - and you just do that, it looks up dependencies automatically,
00:01:47 - finds that the dependency is openssh itself, I'm actually, oh yeah,
00:01:51 - let's install it real quick just to show, so it's going to download
00:01:54 - them all and install them for us. Now, the other options
00:01:57 - work similar. Let's say we want to remove it.
00:02:01 - remove open, oop,
00:02:03 - openssh-clients.
00:02:08 - It's just going to remove the one, okay, but, hold on, we're going
00:02:11 - to say no this time. What if we, yum remove openssh?
00:02:19 - Well, see now it's so, not only going through the clients package,
00:02:22 - but since open, or since, ah, it's not only going to remove openssh,
00:02:27 - but since openssh clients depends on it, it's
00:02:30 - going to remove that as well, so it's not going to let you maintain
00:02:33 - a broken package set in the thing. So we'll say yes, we'll delete
00:02:37 - them both, so now they're both uninstalled. It works similar to apt-get and aptitude,
00:02:42 - and you can search for something, so we'll search for openssh,
00:02:45 - and it's going to return those packages that have
00:02:49 - that installed, now there is a slight difference. If you remember,
00:02:52 - we used to have to, with the Debian stuff, we would have
00:02:54 - to do apt-get update, to update a local database, and then
00:02:58 - apt-get install to do it. Well, YUM actually does that
00:03:01 - in real time, when you install a package, it goes out and searches for
00:03:05 - what's the most recent, what's available. So you don't have
00:03:08 - to do an update if you're going to install a package, it will just
00:03:11 - look out on the web, right away for you and see what is available.
00:03:15 - Now, YUM is controlled in a couple ways.
00:03:20 - yum.repos.d. Now in
00:03:24 - here you're gonna have, let's do a, let's look this way, right now we just
00:03:28 - have the two that come with CentOS, which is what I'm using, it's a
00:03:30 - Red Hat variant. Let's look inside,
00:03:35 - and this is how they're set up, and now it's gonna look, let me maximize
00:03:39 - this, it's gonna look a little bit similar to how things
00:03:41 - looked in configuring the APT, or the sources.list in APT,
00:03:46 - but it's a little bit different, see, they come in
00:03:50 - stanzas, like this, this is the base repository,
00:03:53 - and it has a name, and then says where it's at, et cetera, et cetera.
00:03:57 - It pulls a lot of variables from your environment, like what
00:04:00 - release version you have, and that kind of thing,
00:04:02 - and then everything can use this gpgkey as well. You
00:04:06 - can tell it not to check, or you can tell to check if you have,
00:04:09 - some repositories won't be encrypted properly, so you'll have
00:04:12 - to remove that. Another thing here is updates, add-ons, extras,
00:04:18 - all these different repositories are defined in this base file,
00:04:23 - so here, let me
00:04:25 - This is where, if, because I maximized, it kinda messed up there,
00:04:29 - let's clear the screen.
00:04:31 - All right, now if you had another repository, like you want to
00:04:35 - install, like, oh, I don't know, sometimes you want multi-media stuff to
00:04:39 - work better than it does out of the box, this is where you would
00:04:41 - put one of those repo files, and then, when you do a YUM,
00:04:44 - install something, it'll pull information from the repositories
00:04:47 - defined in these. There's also
00:04:50 - yum.conf. Looking here, and this just gives it some,
00:04:56 - these different things are available, for example, keep the cache,
00:05:00 - no, you want it to search for the cache every time, a debug
00:05:03 - level is what it's gonna put in a log file, which is defined
00:05:05 - here, it's the log file, the distro version package is the
00:05:10 - Red Hat release, you know, exac, like what version we're running.
00:05:13 - So there's all kinds of things that you can specify here, if it needs
00:05:17 - to be the exact architecture, how tolerant it is of dependencies,
00:05:21 - if it's going to check for obsolete files and delete
00:05:24 - them if they're obsolete, again, checking globally for in, for
00:05:28 - encrypted packages, and whether or not it uses plug-ins. Now plug-ins
00:05:32 - are pretty neat, YUM can use plug-ins, one of the most popular
00:05:35 - ones is fastestmirror, and what it does is it searches for the fastest
00:05:40 - mirror available, so that you always get things the quickest, it's kind of cool.
00:05:43 - So anyway, how long metadata takes to install, or, or
00:05:48 - before it expires, as it says right here, put your repos in a
00:05:52 - separate file, named file.repo, in this directory that we just
00:05:55 - looked at. It used to be that you would specify, right in this
00:05:59 - conf file, the, the repositories, the stanzas, but now they've, they've
00:06:03 - segregated that out, so you can have several reprofile, repo
00:06:06 - files, and it'll pull from all of them, it's just a nice way to make things
00:06:09 - more modular. Well, anyway, that is how YUM works. Now there is
00:06:14 - another program specified in, in
00:06:18 - the LPIC exams, and that's called yumdownloader.
00:06:21 - Now, yumdownloaders just download the RPM files, which are
00:06:26 - the, the answer to the deb files, and Debian-based architectures,
00:06:29 - it's the actual files that get installed, we're gonna talk more RPM in a
00:06:32 - few minutes here, but yumdownloader will download those files,
00:06:35 - so, openssh-clients. What it will do, it will go to the
00:06:40 - repository and download that file for us. Now you can guess
00:06:44 - that we won't be able to install this right away, correct, because
00:06:47 - we have to have that openssh package in order to
00:06:51 - install it, because this depends on it. Well, yumdownloader is smart
00:06:54 - in that way, too. You can do yumdownloader,
00:07:00 - use the resolve flag,
00:07:03 - openssh-clients,
00:07:06 - and what this'll do, it will also get any dependencies
00:07:10 - that are required, so you'll see here, now we have both packages,
00:07:14 - both are required in order to install the package. So, it's
00:07:18 - a neat way that you can get the most up-to-date RPM file, or
00:07:22 - the package file from your repository using yumdownloader, to download it locally,
00:07:26 - and it'll even do package resolution for you. So if you want
00:07:29 - to install them one by one, you can, and this will make sure
00:07:32 - that you have all the files that you need.
00:07:35 - So it's pretty simple to use, it has other features here, let's,
00:07:39 - YUM can do searching. We already did searching, YUM can do removing,
00:07:45 - YUM can do pretty much everything aptitude can do, you can
00:07:50 - upgrade, you can, let's do that real quick,
00:07:54 - yum upgrade, and again, what this is gonna do, you don't have to
00:07:57 - do an update, it will automatically look out there and see all
00:08:00 - the files that have updates available, and offer to update
00:08:03 - them for you. It's pretty slick, all right. So, that's, that's how I'm gonna say
00:08:08 - no, I don't want to download 200 MB of stuff, but anyway,
00:08:12 - next we're going to look at RPM itself. Now RPM,
00:08:16 - here, let's clear screen, RPM is for installing individual files and
00:08:21 - querying files and querying the RPM
00:08:24 - database, and all that kind of stuff, but it's not just for installing
00:08:29 - packages, it's a, it's a pretty complex program.
00:08:33 - Okay, when we look at RPMs, it does two things, of course, it installs
00:08:37 - and removes, but I would suggest that you'd want to use YUM
00:08:40 - for this, rather than
00:08:43 - RPM package yourself, but we have to look at how to do that, because YUM
00:08:46 - again will do dependencies, and, and that kind of thing. Now,
00:08:49 - RPM will check a signature to make sure that the file is
00:08:53 - signed with a, you know, with a proper GPG signature, to make
00:08:57 - sure that it's a valid package, and you're not installing malware or anything.
00:09:01 - It can verify an installed package to make sure
00:09:05 - all the files there where they're supposed to be, and to see if
00:09:08 - anything's been changed, like if you can change a config file,
00:09:11 - and then it will do all kinds of queries on packages in the
00:09:14 - database itself. So let's look at how that works in action,
00:09:17 - but RPM does a whole bunch of different stuff.
00:09:21 - Okay, so we're gonna show how, RPM is the name of the program,
00:09:25 - it's also the name of the packages, so.rpm, use the RPM program
00:09:30 - to manage those, the -i flag is going to install
00:09:33 - it, and, let's see, we have openssh,
00:09:39 - let's do the clients one, because I want to show you what happens
00:09:42 - here. See, it won't install because there's a dependency problem, right.
00:09:46 - So let's see, if we change our minds and we actually just
00:09:49 - install the openssh program itself,
00:09:55 - well then, that's going to install, and then if we install the openssh
00:09:59 - clients package, it's going to install, but, like we learned before,
00:10:01 - YUM will do that automatically, so it's kinda nice, the same
00:10:05 - thing now rpm -e for erase, let's say we want to
00:10:09 - get rid of
00:10:11 - ssh.
00:10:12 - Well, it says, no you can't do that, because openssh-clients
00:10:16 - depends on it. So again, if we were to go and erase the clients
00:10:21 - package, that's going to do that, and then we can go and erase
00:10:26 - openssh, but again, YUM's gonna do all that automatically
00:10:29 - for us, so installing and erasing packages probably isn't what you
00:10:33 - want to do with RPM, with the one exception, let's clear the
00:10:37 - screen again.
00:10:39 - Okay, let's say you want to install
00:10:44 - the openssh-clients,
00:10:47 - right? It's gonna say you can't do that, but,
00:10:52 - if you really, really know that you need to install the package,
00:10:56 - RPM does have an option where it's going to let you force that,
00:11:00 - I do not suggest doing this, but if you do nodeps, no dependencies,
00:11:03 - it will certainly let you, install a package that will be
00:11:08 - totally broken, okay, so that's a dangerous thing to do, but there
00:11:11 - are some circumstances where you wanna shoehorn a package in
00:11:15 - there, because you know that it's gonna work just fine,
00:11:18 - even if the dependencies claim not to be correct. So anyway,
00:11:21 - that's, that's one of the things that RPM can do, I'm actually
00:11:24 - going to erase that though, because I know that it's actually
00:11:26 - broken, openssh-clients, get rid of that, okay, so now we're,
00:11:34 - we're clean again, things are going well,
00:11:37 - but the other things that RPM will do are kinda unique, for
00:11:40 - example, if you have these packages still, let's check to make
00:11:44 - sure that we didn't get a man-in-the-middle attack, let's make
00:11:46 - sure that these are actually the real packages. Well, rpm -k,
00:11:50 - not i, -k, is going to verify or check the signatures.
00:11:56 - Verify's actually a different commands, so it's going to
00:11:59 - check the signatures to make sure that these are legitimate
00:12:02 - files from the actual repository, and you'll see here, it checked out,
00:12:08 - all the encryption on the packages, all the sign, all the signatures,
00:12:11 - and they turned out okay, so you can be assured that this
00:12:14 - file is fine, and it came from the proper place. That's one of
00:12:18 - the things that RPM can tell you. Another thing, it can
00:12:22 - verify, let's install these, rpm -i *.prm,
00:12:28 - now this should work, because, well that's got new mail, but that's
00:12:33 - not part of the command, what this did, it installed those
00:12:36 - can, those things, and let's rpm -e,
00:12:41 - openssh,
00:12:45 - we'll do the clients first,
00:12:47 - because I want to show you actually what it's doing.
00:12:51 - Okay, so we just remove them again, but let's install them.
00:12:56 - Let's use the v flag, v is gonna be verbose, so rpm -iv,
00:13:01 - you can put multiple flags in there, it's going to give
00:13:05 - us some, what it's doing, see, so prepare packages for installation,
00:13:09 - install them, install them, so I always suggest to use that v flag,
00:13:12 - so that you can see what's going on, as you can tell, if you don't,
00:13:15 - it'll install them just fine, but it won't tell you when something's
00:13:18 - going on, so I would, I would suggest using the v flag when you
00:13:22 - install files. Now, let's move on. Capital v is a different
00:13:27 - command, which stands for verify, okay. So let's do openssh,
00:13:33 - we're gonna verify that,
00:13:35 - and it turns out, yeah, it verified fine, but let's do Vv, okay. Again,
00:13:40 - verified means it didn't find any errors, but we're gonna
00:13:42 - do this verbose command, so big v, little v, and it's gonna
00:13:45 - show us all of the different files that are installed, and anything
00:13:50 - that's happened. So, let's look right, oh goodness,
00:13:56 - keysign openssh,
00:13:59 - I was going to say, let's look at the same thing for
00:14:04 - openssh-clients.
00:14:07 - Okay, so here we have the same, again, these are the files that were installed
00:14:11 - with the openssh client package. Let's, really quick,
00:14:14 - edit this file, okay, so we're gonna edit that file, vi
00:14:19 - ssh/ssh_config, okay. I'm just gonna put
00:14:25 - Shawn was here,
00:14:28 - save that,
00:14:30 - and now, okay, look at all these dots, right, nothing's changed.
00:14:34 - Let's do that same command again, and we're gonna see, oh,
00:14:38 - what happened here? Well yes, changes were made to that
00:14:41 - initial file, and these mean different things. So three flags
00:14:46 - are what it gave us, the first S means that it changed in file size,
00:14:50 - right, I added stuff to that. The five column here, this five tells us that
00:14:55 - the MD5 signature changed, so if you, if you take a
00:14:58 - hash of the whole file exchange, which of course, makes sense
00:15:01 - because we made changes, and then the T means that the modification
00:15:04 - time is different from the original installed package, all right,
00:15:08 - see, so it, it gives you these different things so you can tell,
00:15:11 - for example, if somebody replaced your ssh binary with
00:15:14 - something devious that maybe wasn't pure, it would tell you
00:15:18 - that the, you know, that the MD5 hash had changed, and probably the
00:15:22 - file modification time, possibly the size, so this is a great
00:15:25 - way to verify that your RPM packages are pure, or that they're,
00:15:30 - you know, in good shape, and you know that they're, how they're
00:15:32 - supposed to be, again, this isn't a sign of anything bad, because
00:15:35 - you would expect the config file to change, but that verify method,
00:15:39 - or that verify flag, is really a neat way to make sure that
00:15:42 - your packages are still intact, all right. So there's one more
00:15:46 - thing that RPM does really well, and that is query packages.
00:15:50 - So let's look at that now.
00:15:52 - Okay, so we have our openssh packages installed, now let's
00:15:56 - do an rpm -q openssh, all right, this is gonna
00:16:03 - give us the version that is installed, and that's great to know
00:16:06 - if, you know, you have a minimum requirement package and you want
00:16:09 - to see what version you have to make sure that you meet the
00:16:11 - minimum requirements, just a quick query, rpm -q and
00:16:14 - the name of the package, will give us that information. If you
00:16:17 - want more information, you can do rpm -qi for information,
00:16:22 - openssh, and it'll give you all this information that comes with
00:16:27 - the RPM, like what it's for, links to go there, a long description,
00:16:33 - all kinds of really neat information about that package, and
00:16:36 - that's what the, the q for query, and then i for information.
00:16:39 - There's a whole bunch of other flags you can do too, like, let's say,
00:16:42 - you wanna do, look at the documentation, they all start with q,
00:16:46 - but d for documentation, openssh,
00:16:49 - and it's gonna show you where the document files are, for
00:16:53 - that, all right, so this is gonna be all the information you can
00:16:56 - read, and even the man pages, the manual pages, it just shows where
00:16:59 - they all are, and how they're done. It's a, it's a neat way to see versions
00:17:04 - and information about installed packages, if you want to see
00:17:07 - all of them, rpm -qa will give you versions of everything
00:17:13 - installed on the system. Now, just doing that by itself isn't terribly
00:17:18 - useful, right, but it might be useful if you were to do that,
00:17:22 - and then pipe, and we're going to talk about pipe in a later, in
00:17:25 - a later nugget, but it basically sends the results through
00:17:28 - a file, grep, let's look for everything that has to do with
00:17:33 - ssh, so
00:17:36 - it's going to do that, and then it's gonna show us everything
00:17:39 - about ssh. Well, there's openssh, and openssh-clients, and
00:17:43 - it tells us the versions on those, so let's say, you know, the, the
00:17:46 - qa by itself just gives you this huge list of installed
00:17:49 - packages, which maybe that's what you want, but at the same time
00:17:52 - you can refine that by searching through the results in real
00:17:55 - time, and it'll show you the files here. So that's how RPM works,
00:17:59 - RPM, again, doesn't do
00:18:02 - dependency resolution, it will tell you what it needs, but
00:18:06 - it won't go and fetch any of those things, so you're gonna
00:18:09 - have to do those yourself with YUM or yumdownloader,
00:18:12 - or if you're, you know, if you're masochistic, maybe just manually
00:18:16 - trying to go find them, or sometimes there's packages you want to
00:18:19 - install that aren't in your repositories, and then it does get kinda ugly,
00:18:23 - but anyway, RPM is, is the program that you use to install things
00:18:26 - when YUM doesn't have it in the repositories. All right,
00:18:30 - so the LPIC exam does talk about a couple more things.
00:18:35 - Let's clear the screen.
00:18:37 - Okay, now a file specifically mentioned in the LPIC exam
00:18:40 - is rpm2cpio. What this is going to do, is it'll take an RPM
00:18:46 - file that you've downloaded, and convert it into basically
00:18:51 - a, a binary representation of, of the files that are in there.
00:18:56 - So, let me just give me you an example, rpm, we gonna do the openssh file,
00:19:01 - right, so if I just press enter, we're going to see all of
00:19:05 - the binary junk spewed on the screen. Now I don't wanna do that, so I'm gonna redirect
00:19:09 - the output into a file,
00:19:11 - call it stuff.cpio, all right. Bam! Now nothing came on the screen, it just
00:19:17 - redirected all of the conversion from an RPM file to a directory
00:19:20 - structure, into that file. So let's look at our file here, so
00:19:24 - see we have stuff.cpio. It's converted that, we can look
00:19:28 - at that with less, less is a smart command, that will look at
00:19:32 - this and say, okay, it's a cpio file, so I'm just gonna show
00:19:35 - you all of the directories that it will be, if I were to extract
00:19:38 - it, what it would be it, right. So this is a list of the files as
00:19:42 - they're going to appear if we extract it. So, let's say, we are
00:19:46 - going to do cpio, the program, how
00:19:52 - do you cpio is a little bit beyond the scope of this, we'll
00:19:54 - probably talk about that later, but basically we're gonna
00:19:57 - do this through here, right. What this will do, it's going
00:20:00 - to actually go through and create the stuff, see, so it created
00:20:04 - all of those files that are in there, see we have an etc
00:20:07 - directory, we have the usr directory, and inside there are
00:20:10 - going to be all the files.
00:20:15 - See, all of these are files that're part of the openssh package,
00:20:20 - and, this converting it to a file system, copy i-o, or cpio,
00:20:25 - will copy to that file system, we can then extract it into the
00:20:28 - files, wherever we want them to be, so if you're maybe, you know,
00:20:32 - oh, let's say you wanted to pick this apart and install them by hand
00:20:35 - not using RPMs, or you just wanted a specific package out of there,
00:20:38 - that's one way that you could do it, but
00:20:41 - converting RPMs from one format to another is really the gist
00:20:44 - of why this is on the LPIC exam. Another program that you can
00:20:48 - use, if you're in, let's say you're in a Debian-based operating system,
00:20:52 - and you have a deb file, let's say you want to convert that to an
00:20:55 - RPM. Well, there's a package called Alien that will do that,
00:20:59 - now it's not specifically mentioned this time in the LPIC exam,
00:21:02 - however, it is talking about converting from RPMs to
00:21:07 - cpio files, and it also specifically says that it may use
00:21:12 - other programs, or programs like rpm2cpio. So I would
00:21:16 - not be surprised if you would see Alien as a program to convert
00:21:20 - from Debian, Deb, files into RPM files, it's a very dangerous thing
00:21:25 - to do, because dependencies just don't work out right, but just
00:21:27 - be aware that, that, that program exists. Okay, so that is how the
00:21:31 - Red Hat package management system works, let's go back at our
00:21:35 - original slide and see if we covered everything before I move
00:21:38 - on to our next nugget.
00:21:40 - All right, we covered RPM, actually did that part last, but we covered
00:21:44 - RPM and, you know, all fancy tricks you can do with it, rpm2cpio,
00:21:49 - also, we mentioned Alien, which is actually a Debian-based
00:21:54 - program, but it can convert RPMs and, and Deb files back and
00:21:57 - forth. Again, I would not suggest using this in a production
00:22:01 - machine, but it may come up on the test, because it is a
00:22:04 - package it does something similar to what rpm2cpio does.
00:22:08 - YUM is kinda like the, the magic sauce, like apt-get, or aptitude was,
00:22:11 - and Debian, it allows you to install and remove packages,
00:22:16 - taking into account dependencies, stuff like that. It has a
00:22:19 - bunch of configuration options in this yum.conf file that
00:22:23 - you can set, and you store your repositories in stanzas inside
00:22:27 - files within this directory. Again, you can add like third-party
00:22:32 - repositories and it would just be another file inside this directory,
00:22:36 - and then yumdownloader, is something that's specifically mentioned
00:22:38 - on the LPIC exams too, and that we went over, it will download
00:22:42 - RPM files, that you specify, from your repositories, it'll
00:22:46 - also resolve dependencies and download those for you as well.
00:22:50 - So that's how RPM YUM package manager works, in, in
00:22:54 - Red Hat based operating systems, which would include things
00:22:56 - like SUSE, Red Hat, CentOS, Mandriva, there's gonna be a
00:23:02 - handful of operating systems, of course, Red Hat, Fedora, that use
00:23:06 - RPMs, and then
00:23:08 - another bunch of them that use Deb file, like we learned in the last
00:23:11 - nugget, now there are some other package management systems,
00:23:15 - but they're uncommon enough that you, you won't see any questions
00:23:18 - about them on the LPIC exam itself. These are the only packages,
00:23:23 - or package management systems, that they come up with,
00:23:26 - apart from my favorite package management system, which is generally
00:23:30 - a box,
00:23:31 - with a bow.
00:23:33 - Generally a prettier bow,
00:23:36 - but anyway.
00:23:38 - That's RPMs, that is the most horrible package you've ever seen, I
00:23:42 - know it, you can, you don't even have to tell me, I know. Anyway
00:23:45 - I hope that this has been informative for you, and I'd like
00:23:48 - to thank you for viewing.

Work on the Command Line

Process Text Streams Using Filters

Perform Basic File Management

Use Streams, Pipes, and Redirects

Create, Monitor, and Kill Processes

Process Priorities

Search Text Files with Regular Expressions

Perform Basic File Editing Operations Using vi

Create Partitions and Filesystems

Maintain the Integrity of Filesystems

Control Mounting and Unmounting of Filesystems

Manage Disk Quotas

Manage File Permissions and Ownership

Create and Change Hard and Symbolic Links

Find System Files and Place Files in the Correct Location

This forum is for community use – trainers will not participate in conversations. Share your thoughts on training content and engage with other members of the CBT Nuggets community. For customer service questions, please contact our support team. The views expressed in comments reflect those of the author and not of CBT Nuggets. We reserve the right to remove comments that do not adhere to our community standards.

comments powered by Disqus
Community Standards

We encourage you to share your wisdom, opinions, and questions with the CBT Nuggets community. To keep things civil, we have established the following policy.

We reserve the right not to post comments that:
contain obscene, indecent, or profane language; contain threats or defamatory statements; contain personal attacks; contain hate speech directed at race, color, sex, sexual orientation, national origin, ethnicity, age, religion, or disability; contributes to a hostile atmosphere; or promotes or endorses services or products. Non-commercial links, if relevant to the topic, are acceptable. Comments are not moderated, however, all comments will automatically be filtered for content that might violate our comment policies. If your comment is flagged by our filter, it will not be published.

We will be continually monitoring published comments and any content that violates our policies will be removed. Users who repeatedly violate our comments policy may be prohibited from commenting.

Course Features

Speed Control

Play videos at a faster or slower pace.


Pick up where you left off watching a video.


Jot down information to refer back to at a later time.

Closed Captions

Follow what the trainers are saying with ease.

MP3 Downloads

Listen to videos anytime, anywhere

Annual Course Features

Transcender Practice Exams

These practice tests help you review your knowledge and prepare you for exams.
Available only with the annual subscription.
Shawn Powers

Shawn Powers

CBT Nuggets Trainer

LPIC-1; CompTIA Linux+, A+; Cisco CCNA

Area Of Expertise:

Add training to a playlist
or create a new list
Add to current playlist
or add to an existing list
Add to new playlist
Add New Bookmark

RPM & YUM Package Management
Bookmark Title:

Login is required to access this feature.

Your browser cannot access Virtual Labs
Video Options

This advanced buffering is applied to all streams regardless if you installed the doublespeed control or not. Sometimes the advanced buffering causes the video to hang or behave erratically. If you are experienceing issues with video playback please disable the doublespeed buffer.

Remember to re-enable the buffer if you want to use the doublespeed control.

If you are experiencing problems with our content delivery, please click here to switch to our alternate content delivery network or go to our network FAQ.
For other common video playback issues, including firewall and corporate network issues, please visit our Tech Support forum.