1 00:00:06,900 --> 00:00:08,340 - On Linux, there are many ways 2 00:00:08,340 --> 00:00:10,260 you can work with software. 3 00:00:10,260 --> 00:00:13,080 One of the ways, and that's how it originally started, 4 00:00:13,080 --> 00:00:15,960 is by installing software from source. 5 00:00:15,960 --> 00:00:16,800 Let me tell you, 6 00:00:16,800 --> 00:00:19,500 you are not going to do that very often anymore, 7 00:00:19,500 --> 00:00:22,620 but I want you to understand the different possibilities. 8 00:00:22,620 --> 00:00:24,717 So let me explain anyway. 9 00:00:24,717 --> 00:00:28,110 So what is installing software from source? 10 00:00:28,110 --> 00:00:30,480 Well you remember Linux is open source, 11 00:00:30,480 --> 00:00:31,890 and open source means 12 00:00:31,890 --> 00:00:36,270 that the source code of software may be provided in files. 13 00:00:36,270 --> 00:00:37,860 And if that is the case, 14 00:00:37,860 --> 00:00:42,000 then it is normally delivered in a compressed tar ball. 15 00:00:42,000 --> 00:00:44,580 A tar ball, that's slang for an archive 16 00:00:44,580 --> 00:00:47,580 that is compressed with the tar utility. 17 00:00:47,580 --> 00:00:50,639 And in that tar ball you can find anything. 18 00:00:50,639 --> 00:00:53,820 Sometimes you will find a setup script to make it easy. 19 00:00:53,820 --> 00:00:56,880 In other cases, you will just find source files 20 00:00:56,880 --> 00:01:00,420 and hopefully there's a readme file that comes with it. 21 00:01:00,420 --> 00:01:02,400 Now, if you want to get this on your computer, 22 00:01:02,400 --> 00:01:03,540 you need to install it, 23 00:01:03,540 --> 00:01:07,410 and installing it often involves compiling. 24 00:01:07,410 --> 00:01:08,640 Now, what is compiling? 25 00:01:08,640 --> 00:01:11,070 Compiling is where you make your software ready to run 26 00:01:11,070 --> 00:01:12,750 on a specific platform. 27 00:01:12,750 --> 00:01:15,300 And there is a reason why you want to do that 28 00:01:15,300 --> 00:01:18,120 as a developer, because if, as a developer, 29 00:01:18,120 --> 00:01:19,320 you deliver source code, 30 00:01:19,320 --> 00:01:21,000 then it's up to the user to make sure 31 00:01:21,000 --> 00:01:24,600 that the software is compiled for their specific platform. 32 00:01:24,600 --> 00:01:26,160 As you can imagine, 33 00:01:26,160 --> 00:01:29,910 there's a difference if you run Linux on a server 34 00:01:29,910 --> 00:01:32,700 or on an embedded device, these are different platforms. 35 00:01:32,700 --> 00:01:34,800 And by compiling, you make sure 36 00:01:34,800 --> 00:01:38,040 that the software is working on the target platform. 37 00:01:38,040 --> 00:01:39,900 In order to do the compiling, 38 00:01:39,900 --> 00:01:41,534 you will need different tools 39 00:01:41,534 --> 00:01:45,540 like the C compiler GCC and the make utility. 40 00:01:45,540 --> 00:01:48,120 This approach does have a couple of problems. 41 00:01:48,120 --> 00:01:49,530 The main disadvantage is 42 00:01:49,530 --> 00:01:51,924 that there is no central registration 43 00:01:51,924 --> 00:01:55,560 on your machine of software that was installed this way. 44 00:01:55,560 --> 00:01:57,538 So there's no easy way to update. 45 00:01:57,538 --> 00:02:00,630 There's no easy way to uninstall. 46 00:02:00,630 --> 00:02:02,940 There's also no dependency handling. 47 00:02:02,940 --> 00:02:05,730 And really this is not what you want to do. 48 00:02:05,730 --> 00:02:08,520 Fortunately, installation of software 49 00:02:08,520 --> 00:02:11,220 from source code has not been the default way 50 00:02:11,220 --> 00:02:14,130 to work with software on Linux for a long time. 51 00:02:14,130 --> 00:02:17,223 It has been followed pretty soon by packages.