1 00:00:00,000 --> 00:00:01,079 [No audio] 2 00:00:01,079 --> 00:00:02,819 Okay, guys, so in this lesson, we are 3 00:00:02,819 --> 00:00:05,189 going to cover advanced package 4 00:00:05,189 --> 00:00:09,029 management. We have the package in our 5 00:00:09,029 --> 00:00:10,709 environment, we installed it, we learned 6 00:00:10,709 --> 00:00:13,709 those couple of commands earlier, and 7 00:00:13,859 --> 00:00:17,549 one is yum, and the other one is rpm. 8 00:00:17,819 --> 00:00:23,039 Now rpm is a Redhat package management 9 00:00:23,669 --> 00:00:26,549 command. There are other commands that 10 00:00:26,549 --> 00:00:28,589 are used in other Linux distribution 11 00:00:28,589 --> 00:00:31,049 like apt get for Ubuntu and many other 12 00:00:31,289 --> 00:00:33,509 different flavors. But anyway, our focus 13 00:00:33,509 --> 00:00:35,669 is on CentOS and Redhat. So we will be 14 00:00:35,669 --> 00:00:38,279 using rpm and yum command. So what 15 00:00:38,279 --> 00:00:40,529 exactly we are going to do in advance 16 00:00:40,529 --> 00:00:42,719 package management? Well in advance 17 00:00:42,719 --> 00:00:44,909 package management we will learn how we 18 00:00:44,909 --> 00:00:49,109 could install packages. Hey, you could 19 00:00:49,109 --> 00:00:50,579 do that through yum command, right? 20 00:00:50,609 --> 00:00:51,809 Yeah, of course, we could do that. 21 00:00:51,809 --> 00:00:54,539 That's the best way to do the 22 00:00:54,539 --> 00:00:57,029 installation of the packages. What if 23 00:00:57,029 --> 00:00:58,919 you already have the package and you 24 00:00:58,919 --> 00:01:00,959 just want install it, so that part will 25 00:01:00,959 --> 00:01:03,719 cover. Then we'll learn how we could do 26 00:01:03,719 --> 00:01:06,929 the upgrade of those packages, followed 27 00:01:06,929 --> 00:01:09,359 by how we could delete those packages. 28 00:01:10,019 --> 00:01:12,329 Then we'll see how we could view a 29 00:01:12,329 --> 00:01:15,779 package detail. Meaning if you have an 30 00:01:15,779 --> 00:01:17,909 installed package, and you want to know 31 00:01:17,909 --> 00:01:20,489 more information about the package, how 32 00:01:20,549 --> 00:01:22,859 or when it was installed, what that is 33 00:01:22,859 --> 00:01:25,709 packages about, when it was built, what 34 00:01:25,709 --> 00:01:27,689 are the configuration file associated 35 00:01:27,689 --> 00:01:30,029 with it, and a lot of other information 36 00:01:30,029 --> 00:01:32,339 related to the package. Then also 37 00:01:32,339 --> 00:01:34,529 identify the source or location 38 00:01:34,529 --> 00:01:38,489 information. If you have a file, or if 39 00:01:38,489 --> 00:01:40,919 you're running a command, let's say you 40 00:01:40,919 --> 00:01:44,189 run a command pwd or ls, you want to 41 00:01:44,219 --> 00:01:46,799 know which package that command belongs 42 00:01:46,799 --> 00:01:49,529 to, so that type of information will 43 00:01:49,529 --> 00:01:53,669 cover. So and last one is the package 44 00:01:53,669 --> 00:01:55,919 configuration file. So if you have 45 00:01:55,919 --> 00:01:58,469 installed a package, let's call it ABC. 46 00:01:58,709 --> 00:02:02,369 So we all know that all the package 47 00:02:02,369 --> 00:02:05,549 configuration files are by default in 48 00:02:05,639 --> 00:02:09,568 /etc. So once the package is 49 00:02:09,568 --> 00:02:11,339 installed, and configuration files get 50 00:02:11,339 --> 00:02:13,889 created in etc, but then it goes into 51 00:02:13,889 --> 00:02:17,279 subdirectories. So etc slash this 52 00:02:17,279 --> 00:02:19,919 slash that, that we don't know, so sometimes 53 00:02:19,919 --> 00:02:22,769 we even forget. So how can we find out 54 00:02:22,769 --> 00:02:25,439 that information about a package, if you 55 00:02:25,469 --> 00:02:27,629 are, if you have done the download, 56 00:02:27,629 --> 00:02:29,849 installation, and now it's about the 57 00:02:29,849 --> 00:02:32,069 configuration of that package. So those 58 00:02:32,069 --> 00:02:35,099 are the things that we'll cover. So, to 59 00:02:35,099 --> 00:02:37,049 go over one, a one by one, all those 60 00:02:37,049 --> 00:02:39,839 things, I'm going to go ahead and log 61 00:02:39,869 --> 00:02:42,899 into our Linux machine. I'm gonna use 62 00:02:42,929 --> 00:02:47,249 our PuTTY session to SSH into the Linux 63 00:02:47,249 --> 00:02:50,939 machine. So let's go into our Linux 64 00:02:50,939 --> 00:02:53,009 machine right here. I have already 65 00:02:53,009 --> 00:02:57,509 logged in and I am logged in as root. 66 00:02:57,809 --> 00:03:00,299 And you could also verify by looking at 67 00:03:00,389 --> 00:03:04,229 this pound sign. Okay, so the package 68 00:03:04,529 --> 00:03:08,009 that we are going to install in this 69 00:03:08,009 --> 00:03:11,639 lesson or in this practice is KornShell 70 00:03:11,639 --> 00:03:13,949 package. Now KornShell is a shell, 71 00:03:13,949 --> 00:03:15,989 which you probably have already know 72 00:03:15,989 --> 00:03:18,239 about. It's just like a bash, or C 73 00:03:18,239 --> 00:03:20,579 shell. So I'm picking this just for 74 00:03:20,579 --> 00:03:22,469 practice purposes for just for this 75 00:03:22,469 --> 00:03:24,779 lesson. So KornShell is the package 76 00:03:24,779 --> 00:03:26,519 that we do not have in the system, and 77 00:03:26,519 --> 00:03:29,039 we are going to install, it needed to be 78 00:03:29,039 --> 00:03:31,859 upgraded, deleted, view its package 79 00:03:31,859 --> 00:03:33,299 information. And we will cover 80 00:03:33,299 --> 00:03:35,969 everything that we have listed on on 81 00:03:35,969 --> 00:03:37,949 this lesson. So let's see if we have a 82 00:03:37,949 --> 00:03:40,649 KornShell package already installed in 83 00:03:40,649 --> 00:03:43,259 the system. So to check that you will 84 00:03:43,259 --> 00:03:47,862 have to do rpm -qa grep it for ksh. 85 00:03:47,862 --> 00:03:51,119 And you'll see we do not have 86 00:03:51,119 --> 00:03:53,549 that package installed in our system. So 87 00:03:54,569 --> 00:03:57,209 now we have to install package through 88 00:03:57,329 --> 00:03:59,999 two ways. One is that we run yum 89 00:04:00,599 --> 00:04:02,549 install the name of the package. The 90 00:04:02,549 --> 00:04:04,439 second one is that we download the 91 00:04:04,439 --> 00:04:07,319 package through a different means, if you 92 00:04:07,319 --> 00:04:10,169 do not have internet access, then you 93 00:04:10,169 --> 00:04:12,359 could download the package then install 94 00:04:12,359 --> 00:04:15,119 it. But I do have internet access on 95 00:04:15,119 --> 00:04:17,459 this machine. And I can verify it by 96 00:04:17,459 --> 00:04:20,069 doing ping www. let's say 97 00:04:20,069 --> 00:04:23,999 facebook.com. And you will see I'll get 98 00:04:23,999 --> 00:04:26,519 a response back see. It means that I am 99 00:04:26,519 --> 00:04:28,319 online so you could also check by 100 00:04:28,319 --> 00:04:30,719 running ifconfig command and you'll see 101 00:04:30,719 --> 00:04:34,469 I have IP 192.168.1.13. You probably 102 00:04:34,469 --> 00:04:37,649 have a different IP, depends on which 103 00:04:37,649 --> 00:04:40,259 network you are in. Anyway, so I do have 104 00:04:40,259 --> 00:04:43,529 it in an axis and I don't need to 105 00:04:43,529 --> 00:04:45,179 download a package. So I could what I 106 00:04:45,179 --> 00:04:50,359 could do is simply do is yum install ksh, 107 00:04:50,359 --> 00:04:53,309 KornShell. Anything that is related 108 00:04:53,309 --> 00:04:54,689 to KornShell I could just put it 109 00:04:54,989 --> 00:04:56,609 asterisk, so hit 110 00:04:56,670 --> 00:05:02,640 enter. Okay, and you will see it did find 111 00:05:02,730 --> 00:05:06,540 a package, one package and the name of 112 00:05:06,540 --> 00:05:10,440 the package and it says x86_64 package, it 113 00:05:10,440 --> 00:05:12,270 doesn't have any dependencies good. So 114 00:05:12,270 --> 00:05:16,050 I'll go ahead, hit Y. Also, if you notice 115 00:05:16,050 --> 00:05:17,550 the bottom tells you the size of the 116 00:05:17,550 --> 00:05:20,010 package, installed size. You could 117 00:05:20,010 --> 00:05:22,410 confirm everything before you go ahead 118 00:05:22,410 --> 00:05:27,480 and hit Y. So hit enter, and this is 119 00:05:27,480 --> 00:05:30,450 going to download the package first. And 120 00:05:30,450 --> 00:05:32,400 then once the package is downloaded, 121 00:05:32,400 --> 00:05:34,350 then it will go ahead and install the 122 00:05:34,350 --> 00:05:38,400 package, verify it, and clean it up. So let's 123 00:05:38,400 --> 00:05:41,670 give it a few seconds and let it finish. 124 00:05:41,699 --> 00:05:46,230 [No audio] 125 00:05:46,230 --> 00:05:47,850 The package installation has been 126 00:05:47,850 --> 00:05:50,370 completed, and it is successful. Once you 127 00:05:50,370 --> 00:05:52,260 see at the bottom it says CompleteQ. Now 128 00:05:52,260 --> 00:05:54,480 how do we verify it, hit up arrow key 129 00:05:54,480 --> 00:05:56,730 again, and you will see you will have 130 00:05:56,730 --> 00:05:59,550 that package last run rpm -qa grep for 131 00:05:59,550 --> 00:06:03,120 ksh, hit enter. And this is the 132 00:06:03,120 --> 00:06:05,760 package that was installed during our 133 00:06:05,760 --> 00:06:08,880 yum install command. Okay, so now what 134 00:06:08,910 --> 00:06:11,490 if you wanted to remove that package, 135 00:06:11,670 --> 00:06:13,320 you could simply run the same command 136 00:06:13,320 --> 00:06:17,640 yum remove ksh and hit asterisk, 137 00:06:17,640 --> 00:06:20,130 and hit enter. This is going to go ahead 138 00:06:20,130 --> 00:06:22,050 and remove the package that it just 139 00:06:22,050 --> 00:06:24,840 installed, hit y, and it is completed. Now 140 00:06:24,840 --> 00:06:26,970 run the pack the rpm command again to 141 00:06:26,970 --> 00:06:28,740 query their database and the list of 142 00:06:28,740 --> 00:06:30,480 package that installed, and you will see 143 00:06:30,480 --> 00:06:34,440 there is nothing installed that 144 00:06:34,440 --> 00:06:37,230 matches KornShell. Okay, so that is the 145 00:06:37,230 --> 00:06:39,840 first and most preferred way to install 146 00:06:39,840 --> 00:06:42,660 and, download and install a package. Now 147 00:06:42,660 --> 00:06:44,550 coming back to the same scenario, what 148 00:06:44,550 --> 00:06:47,340 if you do not have internet access? Or 149 00:06:47,340 --> 00:06:49,110 what if you do not have a local 150 00:06:49,110 --> 00:06:50,970 repositories? Then what do you have to 151 00:06:50,970 --> 00:06:53,640 do is, you have to go, you have to know 152 00:06:53,640 --> 00:06:55,380 the exact location where the file, of how 153 00:06:55,380 --> 00:06:58,350 to download a file and then do rpm 154 00:06:58,350 --> 00:07:01,530 command to install the package. But 155 00:07:01,530 --> 00:07:06,960 first, let's go to our internet and go 156 00:07:06,960 --> 00:07:09,150 to Google, if you have a different one 157 00:07:09,390 --> 00:07:12,930 different search method, web server that 158 00:07:12,930 --> 00:07:14,370 you could use, you could use bing or 159 00:07:14,370 --> 00:07:17,250 whichever. Anyway, so I'll type in as you 160 00:07:17,250 --> 00:07:19,530 can see, I already have typed in before, 161 00:07:20,040 --> 00:07:27,870 download ksh for centos 7. So 162 00:07:27,870 --> 00:07:33,367 hit enter and go and click on the first link. 163 00:07:33,367 --> 00:07:38,740 [No audio] 164 00:07:38,740 --> 00:07:42,154 This will bring you to the pkgs.org page, 165 00:07:42,154 --> 00:07:45,180 come down, and all the way down, 166 00:07:45,180 --> 00:07:47,370 and you see where it says the package 167 00:07:47,370 --> 00:07:49,680 that ends with .rpm, just simply right 168 00:07:49,680 --> 00:07:52,740 click to it and click on Copy link 169 00:07:52,770 --> 00:07:56,010 address. Once you did the Copy link 170 00:07:56,010 --> 00:07:58,650 address, go back to your Linux machine, 171 00:07:58,680 --> 00:08:03,420 and now this time type wget and the 172 00:08:03,420 --> 00:08:06,630 package exact location of the package, 173 00:08:06,660 --> 00:08:11,040 and hit enter. Now you're probably 174 00:08:11,040 --> 00:08:12,450 thinking hey, I don't have internet 175 00:08:12,450 --> 00:08:14,400 access and how can I download this 176 00:08:14,400 --> 00:08:18,360 package if I don't. Well, the simple way 177 00:08:18,360 --> 00:08:20,160 is you could go ahead and download on 178 00:08:20,160 --> 00:08:23,460 your machine on the machine that already 179 00:08:23,460 --> 00:08:25,410 has internet connection you download and 180 00:08:25,410 --> 00:08:27,420 then you get FTP or whichever way is 181 00:08:27,420 --> 00:08:29,160 preferred for you that you could FTP over. 182 00:08:29,610 --> 00:08:31,470 It has downloaded. Where did it download? 183 00:08:31,500 --> 00:08:34,830 Let's check, pwd, it's downloaded in slash 184 00:08:34,830 --> 00:08:38,220 root. Let's verify it, if it is there by 185 00:08:38,220 --> 00:08:40,620 doing ls -ltr, hit enter, and you 186 00:08:40,620 --> 00:08:44,370 will see this is the package rpm. Now we 187 00:08:44,370 --> 00:08:46,710 have installed this package before using 188 00:08:46,710 --> 00:08:49,020 the command yum. But now this time we 189 00:08:49,020 --> 00:08:50,789 are going to install this package using 190 00:08:50,789 --> 00:08:55,020 the command rpm dash hiv and the name 191 00:08:55,020 --> 00:08:56,940 of the package. The hiv, other 192 00:08:56,940 --> 00:08:59,790 different options you could use hiv 193 00:09:00,390 --> 00:09:03,240 differently, vi hiv, ivh, whichever the way 194 00:09:03,240 --> 00:09:05,550 you prefer, I prefer this way. So go 195 00:09:05,550 --> 00:09:08,880 ahead and hit enter, and now it has 196 00:09:08,880 --> 00:09:11,670 installed that package. And now you 197 00:09:11,670 --> 00:09:14,880 could check by running rpm -qa 198 00:09:14,880 --> 00:09:16,650 and grep for ksh, and you will see 199 00:09:16,680 --> 00:09:19,290 the packages there. Right. So that is 200 00:09:19,290 --> 00:09:21,360 the way you could install that package. 201 00:09:21,630 --> 00:09:24,450 Now what if you wanted to verify the 202 00:09:24,450 --> 00:09:26,790 information about the package. You could 203 00:09:26,790 --> 00:09:31,440 do rpm -qi, i as an information, 204 00:09:31,710 --> 00:09:35,700 and the name of the package. Copy, right 205 00:09:35,700 --> 00:09:36,900 click, hit enter, 206 00:09:37,140 --> 00:09:38,610 and you will see the information about 207 00:09:38,610 --> 00:09:40,880 the package. The package name is KornShell, 208 00:09:40,880 --> 00:09:43,410 version, release, architecture, 209 00:09:43,410 --> 00:09:46,260 installed, the group, and a whole bunch of 210 00:09:46,260 --> 00:09:48,840 information, where you get it, what 211 00:09:48,870 --> 00:09:52,680 exactly it does, what's the information about. So 212 00:09:52,680 --> 00:09:54,540 this is about the information of that 213 00:09:54,540 --> 00:09:56,610 specific package that has been installed 214 00:09:56,610 --> 00:09:59,370 in your system. Okay, so next step is 215 00:09:59,370 --> 00:10:01,680 what, how can you delete the package 216 00:10:01,830 --> 00:10:05,400 using rpm command. Remember, we learned 217 00:10:05,400 --> 00:10:08,070 how to delete a package using yum 218 00:10:08,190 --> 00:10:10,230 remove command. Now let's delete a 219 00:10:10,230 --> 00:10:12,630 package using rpm. For that, you need to 220 00:10:12,630 --> 00:10:15,450 know exactly the name of the 221 00:10:15,450 --> 00:10:17,190 package. So the name of the package we 222 00:10:17,190 --> 00:10:19,170 have it by getting running the command 223 00:10:19,170 --> 00:10:24,090 rpm -qa. Now run rpm -d as 224 00:10:24,090 --> 00:10:28,260 for delete, specify the entire package 225 00:10:28,260 --> 00:10:31,140 name, hit enter. And now it has 226 00:10:31,140 --> 00:10:34,920 deleted that package. Verify it by doing rpm 227 00:10:34,920 --> 00:10:39,120 dash qa and grep for ksh. And you 228 00:10:39,120 --> 00:10:43,080 see it has removed a package. Okay, so 229 00:10:43,080 --> 00:10:45,000 now this was about removing the package. 230 00:10:45,150 --> 00:10:47,670 Now I want to cover more things about 231 00:10:47,880 --> 00:10:49,680 this package. So I'll go ahead and 232 00:10:49,680 --> 00:10:51,360 install it again. This time I'll install 233 00:10:51,360 --> 00:10:54,687 it with yum install ksh*, 234 00:10:54,687 --> 00:10:57,870 [No audio] 235 00:10:57,870 --> 00:11:00,870 this package, and it has installed that 236 00:11:00,870 --> 00:11:05,070 package, perfect. Again, verify it. Yes, 237 00:11:05,070 --> 00:11:08,280 that package is there. Now, I need to 238 00:11:08,280 --> 00:11:10,410 list configuration file of this package, 239 00:11:10,410 --> 00:11:13,410 is how can I list that. So you could do 240 00:11:13,440 --> 00:11:19,020 rpm -qc, and the name of 241 00:11:19,020 --> 00:11:23,640 the package. Hit enter, and you will see 242 00:11:23,760 --> 00:11:25,560 the configuration file that you need to 243 00:11:25,560 --> 00:11:27,990 modify in case you might need to do the 244 00:11:28,410 --> 00:11:30,360 some configuration of the package, and 245 00:11:30,360 --> 00:11:31,740 these are the list of all the 246 00:11:31,740 --> 00:11:33,990 configuration file. Remember I told you 247 00:11:33,990 --> 00:11:35,970 the package configuration file are 248 00:11:35,970 --> 00:11:38,700 always in etc directory. But then 249 00:11:38,700 --> 00:11:40,260 once you are in etcdirectory, there are 250 00:11:40,260 --> 00:11:43,170 1000s of files, 1000s of directories, 251 00:11:43,200 --> 00:11:44,910 where do we have to go exactly for that 252 00:11:44,910 --> 00:11:47,610 specific package? Well there for that 253 00:11:47,610 --> 00:11:49,320 you have to find out the configuration 254 00:11:49,320 --> 00:11:51,630 file. And how do you find out? I just 255 00:11:51,630 --> 00:11:55,530 showed you rpm -qc. Now what if you 256 00:11:55,530 --> 00:11:58,740 want to find out some information of the 257 00:11:59,520 --> 00:12:02,910 command, let's say if there's a command 258 00:12:02,940 --> 00:12:04,890 associated with this package, and the 259 00:12:04,890 --> 00:12:07,590 command for that package is I know 260 00:12:07,680 --> 00:12:10,200 offhand is ksh, just hit enter 261 00:12:10,350 --> 00:12:12,120 and that will bring you to a KornShell. 262 00:12:13,140 --> 00:12:15,750 Just like a regular command like pwd, ls 263 00:12:15,750 --> 00:12:18,180 command, every package has a command 264 00:12:18,180 --> 00:12:20,760 associated with it. So let's exit out so 265 00:12:20,760 --> 00:12:23,550 we could go back to our bash shell. So 266 00:12:23,550 --> 00:12:26,940 this is a command, and what if you want 267 00:12:26,940 --> 00:12:30,090 to know which package this command 268 00:12:30,090 --> 00:12:33,390 belongs to. For that you have to run the 269 00:12:33,390 --> 00:12:44,280 command rpm -qf, and ksh. Oops, 270 00:12:44,310 --> 00:12:46,140 sorry, I forgot. First I need to know 271 00:12:46,140 --> 00:12:48,420 the path of that package, of that 272 00:12:48,420 --> 00:12:51,630 command. So I'll do which ksh. And 273 00:12:51,630 --> 00:12:54,930 it's telling me that key sh command. The 274 00:12:54,930 --> 00:12:58,380 full path is /usr/bin/ksh. Now I 275 00:12:58,380 --> 00:13:01,680 could do that command, rpm dash qf, and 276 00:13:01,680 --> 00:13:04,560 I'll put that here, hit enter. And now 277 00:13:04,560 --> 00:13:06,840 it's telling me hey, this command that 278 00:13:06,840 --> 00:13:09,870 you run, this command belongs to this 279 00:13:09,870 --> 00:13:13,590 package. Good. Good. Now, you probably 280 00:13:13,590 --> 00:13:15,600 thinking, hey, this is fun, I could find 281 00:13:15,600 --> 00:13:17,820 out all the package information for all 282 00:13:17,820 --> 00:13:20,430 the commands I have ran. Right so far, 283 00:13:20,430 --> 00:13:22,050 whatever the commands that you have 284 00:13:22,050 --> 00:13:24,570 learned, you could definitely find out 285 00:13:24,570 --> 00:13:26,640 which package it belongs to. For 286 00:13:26,640 --> 00:13:29,580 example, my favorite command is let's 287 00:13:29,580 --> 00:13:31,200 say every time you log in a way to see 288 00:13:31,200 --> 00:13:33,450 who is logged in or which directory I'm 289 00:13:33,450 --> 00:13:35,280 in. So let's say pwd is the directory, 290 00:13:35,280 --> 00:13:37,500 right? That's the command 291 00:13:37,500 --> 00:13:39,090 which tells you which directory you are 292 00:13:39,090 --> 00:13:41,820 in. So if you wanted to know which 293 00:13:41,820 --> 00:13:44,970 package this command belongs to, first 294 00:13:44,970 --> 00:13:46,620 what do you need to do, you need to find 295 00:13:46,620 --> 00:13:50,730 out the command path, so which pwd. Now 296 00:13:50,730 --> 00:13:54,240 you know that this command, the full path 297 00:13:54,240 --> 00:13:57,450 for this command is /usr/bin/pwd. Now, 298 00:13:57,450 --> 00:13:59,490 [No audio] 299 00:13:59,490 --> 00:14:05,794 do rpm -qf /usr/bin/pwd, 300 00:14:05,794 --> 00:14:08,100 and it is telling you that this 301 00:14:08,100 --> 00:14:11,190 command pwd belongs to a package called 302 00:14:11,190 --> 00:14:14,730 coreutils. And then version, if you 303 00:14:14,730 --> 00:14:18,030 remove this package, then you cannot run 304 00:14:18,030 --> 00:14:21,540 the command pwd, then whichever you are 305 00:14:21,540 --> 00:14:23,490 in how you're going to find out? You 306 00:14:23,490 --> 00:14:25,860 cannot find out, so you would have to re 307 00:14:25,860 --> 00:14:28,530 install that package again using yum 308 00:14:28,530 --> 00:14:30,180 command or going to the link and 309 00:14:30,180 --> 00:14:33,690 downloading. So that's how you actually 310 00:14:33,690 --> 00:14:36,750 find out the information about a specific 311 00:14:37,020 --> 00:14:39,780 package, a specific configuration of 312 00:14:39,810 --> 00:14:42,840 package, or the package information of a 313 00:14:42,840 --> 00:14:45,150 command. Package management is one of 314 00:14:45,150 --> 00:14:48,330 the things that everyone would face in 315 00:14:48,330 --> 00:14:50,730 their career at least twice a year or 316 00:14:50,730 --> 00:14:52,350 three times a year when you have to do 317 00:14:52,590 --> 00:14:54,690 or install or upgrade the packages. 318 00:14:55,320 --> 00:14:57,630 Hopefully this lesson serves a purpose. 319 00:14:57,630 --> 00:15:01,142 If you have any questions always send me an email.