1 00:00:01,330 --> 00:00:03,310 How a package system works. 2 00:00:03,580 --> 00:00:10,090 The method of software distribution found in the proprietary software industry usually entails buying 3 00:00:10,120 --> 00:00:12,280 a piece of installation media, such as? 4 00:00:12,490 --> 00:00:18,820 Such as an install disc or visiting each vendor's website and downloading the product and then running 5 00:00:18,820 --> 00:00:20,330 an installation wizard. 6 00:00:20,350 --> 00:00:23,130 So to install a new application on the system, right? 7 00:00:23,140 --> 00:00:26,300 But Linux doesn't work that way. 8 00:00:26,320 --> 00:00:32,800 Virtually all software for Linux system will be found on the internet and most of it will be provided 9 00:00:32,800 --> 00:00:37,930 by the distribution vendor in the form of package files and the rest of will be available in source 10 00:00:37,930 --> 00:00:40,840 code form that can be installed manually. 11 00:00:40,840 --> 00:00:45,670 And we will talk about how to install software by compiling source code in the next lecture. 12 00:00:45,670 --> 00:00:48,190 But first, let's get started with the package files. 13 00:00:48,840 --> 00:00:54,750 So the basic unit of software in a packaging system is the package file. 14 00:00:54,780 --> 00:00:59,010 A package file is a compressed collection of files that comprise the software package. 15 00:00:59,310 --> 00:01:05,310 So a package may consist of numerous programs and data files that supports the programs, and in addition 16 00:01:05,310 --> 00:01:11,790 to the files to be installed, the package file also includes metadata about the packages such as the 17 00:01:11,790 --> 00:01:15,480 text description or of the package and its contents. 18 00:01:15,480 --> 00:01:15,810 Right. 19 00:01:15,810 --> 00:01:23,460 So additionally, many packages contain pre and post installation scripts that perform configuration 20 00:01:23,460 --> 00:01:25,320 tasks before and after the package. 21 00:01:25,320 --> 00:01:31,110 Installation and package files are created by a person known as the package maintainer. 22 00:01:31,200 --> 00:01:34,890 Often, but not always an employee of the distribution vendor. 23 00:01:34,890 --> 00:01:35,220 Right. 24 00:01:35,220 --> 00:01:43,350 So the package maintainer gets the software in a source code form from the upstream provider or the 25 00:01:43,350 --> 00:01:50,980 author of the program compiles it and creates the package metadata and any necessary installation scripts. 26 00:01:51,010 --> 00:01:57,400 Often the package maintainer will apply modifications to the original source code to improve the program's 27 00:01:57,400 --> 00:02:00,820 integration with the other parts of the Linux distributions. 28 00:02:01,300 --> 00:02:05,390 We also have the repositories. 29 00:02:05,410 --> 00:02:08,800 Repositories here. 30 00:02:09,040 --> 00:02:10,480 Repo. 31 00:02:11,650 --> 00:02:11,980 The. 32 00:02:14,050 --> 00:02:15,520 Oh, race. 33 00:02:18,450 --> 00:02:23,760 While some shorter projects choose to perform their own packaging and distribution. 34 00:02:23,760 --> 00:02:29,610 And the most packages today are created by the distribution vendors and interested third parties and 35 00:02:29,610 --> 00:02:35,820 packages are made available to the users users of distribution in a central repository that may contain 36 00:02:35,820 --> 00:02:41,940 many thousands of packages, each specially built and maintained for the distribution. 37 00:02:41,940 --> 00:02:42,360 Right. 38 00:02:42,360 --> 00:02:47,970 So a distribution may maintain several different repositories for a different stages of the software 39 00:02:47,970 --> 00:02:49,270 development life cycle. 40 00:02:49,290 --> 00:02:57,150 For example, there will be usually be a testing repository that contains packages that have just been 41 00:02:57,150 --> 00:03:04,110 built and are intended for use by brave souls who are looking for bugs before the packages are released 42 00:03:04,110 --> 00:03:05,790 for general distribution. 43 00:03:05,790 --> 00:03:06,210 Right. 44 00:03:06,210 --> 00:03:12,900 And the distribution will often have a development repository where work in progress packages designed 45 00:03:12,900 --> 00:03:15,030 for inclusion in the distributions. 46 00:03:15,060 --> 00:03:21,760 Next major release are kept and it is revision may also have related third party repositories, and 47 00:03:21,760 --> 00:03:29,890 these are often needed to be supplied software for legal reasons such as patents or DRM anti-circumvention 48 00:03:29,890 --> 00:03:32,820 issues and cannot be included with the distribution. 49 00:03:32,890 --> 00:03:39,700 Perhaps the best known case is that of the encrypted DVD support, which is not legal in the United 50 00:03:39,700 --> 00:03:46,600 States, and the third party repositories operate in countries where the software, patents and Anti-circumvention 51 00:03:46,600 --> 00:03:53,410 labs do not apply, and these repositories are usually fully independent of the distributions they support 52 00:03:53,410 --> 00:04:01,390 and to use them, one must know about them and manually include them in the configuration files for 53 00:04:01,390 --> 00:04:03,580 package management system. 54 00:04:04,030 --> 00:04:09,490 And we also have dependencies the tendencies. 55 00:04:15,510 --> 00:04:16,340 Dependencies. 56 00:04:16,340 --> 00:04:19,630 So programs are seldom stand alone. 57 00:04:19,640 --> 00:04:25,760 Rather, they rely on the presence of other software components to get their work done. 58 00:04:25,760 --> 00:04:32,990 And common activities such as input output, for example, are handled by routines shared by many programs, 59 00:04:32,990 --> 00:04:38,210 and these routines are stored in a shared libraries which provide essential services to more than one 60 00:04:38,210 --> 00:04:38,870 program. 61 00:04:39,230 --> 00:04:47,430 And if a package requires a shared resource such as shared library, it is said to have a dependency. 62 00:04:47,450 --> 00:04:55,100 Modern package management system all provides some method of dependency resolution to ensure that when 63 00:04:55,100 --> 00:05:00,740 a package is installed, all of its dependencies are installed too. 64 00:05:01,010 --> 00:05:06,050 And we also have high and low package tools. 65 00:05:06,050 --> 00:05:12,260 And package management usually consists of two types of tools, which is actually let me write that 66 00:05:12,260 --> 00:05:13,340 down right here. 67 00:05:13,340 --> 00:05:18,600 So which is the low level, low level level. 68 00:05:19,170 --> 00:05:25,140 This is the low level tools that handle tasks such as installing and removing packages. 69 00:05:25,140 --> 00:05:27,480 And we also have high. 70 00:05:28,660 --> 00:05:29,590 Level. 71 00:05:31,720 --> 00:05:37,480 Tools, which is perform metadata, searching and dependency resolution. 72 00:05:37,480 --> 00:05:43,750 And in this section we will look at the tools supplied with the Debian style systems such as Ubuntu 73 00:05:43,750 --> 00:05:47,020 and many others and those used by Red Hat products. 74 00:05:47,020 --> 00:05:55,090 While older style distributions rely on the same low level program RPM, they use different high level 75 00:05:55,090 --> 00:05:58,210 tools for and for our discussion. 76 00:05:58,210 --> 00:06:07,690 We will cover the high level program such as UME used by Red Hat, Enterprise, Linux and CentOS and 77 00:06:07,690 --> 00:06:09,010 other Red Hat style distributions. 78 00:06:09,010 --> 00:06:12,070 Provide high level tools with the comparable features.