Skip to content
Snippets Groups Projects
Verified Commit 39a8df6e authored by Laurent Modolo's avatar Laurent Modolo
Browse files

11 and 12: fix typo

parent 61be22ab
No related branches found
No related tags found
No related merge requests found
Pipeline #577 passed
...@@ -34,21 +34,21 @@ klippy::klippy( ...@@ -34,21 +34,21 @@ klippy::klippy(
Objective: Learn how to install programs in GNU/Linux Objective: Learn how to install programs in GNU/Linux
As we have seen in the [4 unix file system](http://perso.ens-lyon.fr/laurent.modolo/unix/4_unix_file_system.html#lib-and-usrlib) session, programs are files that contain instruction for the computer to do things. Those files can be in binary or text format (with a [shebang](http://perso.ens-lyon.fr/laurent.modolo/unix/9_batch_processing.html#shebang)). Any of those files, present in a folder of the [**PATH**](http://perso.ens-lyon.fr/laurent.modolo/unix/9_batch_processing.html#path) variable are executable anywhere by the user. For system wide installation, the program files are copied within shared folder path containained in the [**PATH**](http://perso.ens-lyon.fr/laurent.modolo/unix/9_batch_processing.html#path) variable. As we have seen in the [4 Unix file system](http://perso.ens-lyon.fr/laurent.modolo/unix/4_unix_file_system.html#lib-and-usrlib) session, programs are files that contain instruction for the computer to do things. Those files can be in binary or text format (with a [shebang](http://perso.ens-lyon.fr/laurent.modolo/unix/9_batch_processing.html#shebang)). Any of those files, present in a folder of the [**PATH**](http://perso.ens-lyon.fr/laurent.modolo/unix/9_batch_processing.html#path) variable are executable anywhere by the user. For system wide installation, the program files are copied within shared folder path containained in the [**PATH**](http://perso.ens-lyon.fr/laurent.modolo/unix/9_batch_processing.html#path) variable.
Developers don’t want to reinvent the wheel each time they want to write complex instruction in their programs, this is why they use shared library of pre-written complex instruction. This allows for quicker development, fewer bugs (we only have to debug the library once and use it many times), and also [better memory management](http://perso.ens-lyon.fr/laurent.modolo/unix/6_unix_processes.html#processes-tree) (we only load the library once and it can be used by different programs). Developers don’t want to reinvent the wheel each time they want to write complex instruction in their programs, this is why they use shared library of pre-written complex instruction. This allows for quicker development, fewer bugs (we only have to debug the library once and use it many times), and also [better memory management](http://perso.ens-lyon.fr/laurent.modolo/unix/6_unix_processes.html#processes-tree) (we only load the library once and it can be used by different programs).
# Package Manager # Package Manager
However, interdependencies between programs and libraries can be a nightmare to handle manually this is why most of the time when you install a program you will use a [package manager](https://en.wikipedia.org/wiki/Package_manager). [Package manager](https://en.wikipedia.org/wiki/Package_manager) are system tools that will handle automatically all the dependencies of a program. They rely on **repositories** of programs and library which contains all the information about the trees of dependence and the corresponding files (**packages**). However, interdependencies between programs and libraries can be a nightmare to handle manually this is why most of the time when you install a program you will use a [package manager](https://en.wikipedia.org/wiki/Package_manager). [Package managers](https://en.wikipedia.org/wiki/Package_manager) are system tools that will handle automatically all the dependencies of a program. They rely on **repositories** of programs and library which contains all the information about the trees of dependence and the corresponding files (**packages**).
System-wide installation steps: Systemwide installation steps:
- The user asks the package manager to install a program - The user asks the package manager to install a program
- The **package manager** queries its repository lists to search for the most recent **package** version of the program (or a specific version) - The **package manager** queries its repository lists to search for the most recent **package** version of the program (or a specific version)
- The **package manager** construct the dependency tree of the program - The **package manager** construct the dependency tree of the program
- The **package manager** check that the new dependency tree is compatible with every other installed program - The **package manager** check that the new dependency tree is compatible with every other installed program
- The **package manager** install the program **package** and all its dependencies **packages** in their correct version - The **package manager** install the program **package** and all its dependencies **packages** in their correct version
The main difference between GNU/Linux distribution is the package manager they use The main difference between GNU/Linux distribution is the package manager they use
...@@ -71,7 +71,7 @@ docker run -it --volume /:/root/chroot alpine sh -c "chroot /root/chroot /bin/ba ...@@ -71,7 +71,7 @@ docker run -it --volume /:/root/chroot alpine sh -c "chroot /root/chroot /bin/ba
## Installing R ## Installing R
**R** is a complex program that relies on loots of dependencies. Your current VM run on Ubuntu, so we are going to use the `apt` tool (`apt-get` is the older version of the `apt` command, `synaptic` is a graphical interface for `apt-get`) **R** is a complex program that relies on loots of dependencies. Your current VM run on Ubuntu, so we are going to use the `apt` tool (`apt-get` is the older version of the `apt` command, `synaptic` is a graphical interface for `apt-get`).
You can check the **r-base** package dependencies on the website [packages.ubuntu.com](https://packages.ubuntu.com/focal/r-base). Not too much dependency ? Check the sub-package **r-base-core**. You can check the **r-base** package dependencies on the website [packages.ubuntu.com](https://packages.ubuntu.com/focal/r-base). Not too much dependency ? Check the sub-package **r-base-core**.
...@@ -152,7 +152,7 @@ If it’s not a good idea to have different **package manager** on the same syst ...@@ -152,7 +152,7 @@ If it’s not a good idea to have different **package manager** on the same syst
- `install.packages` for R - `install.packages` for R
- ... - ...
These **package managers** allows your to make installation local to the user, which is advisable to avoid any conflict with the **packages manager** of the system. These **package managers** allow you to make installation local to the user, which is advisable to avoid any conflict with the **packages manager** of the system.
For example, you can use the following command to install `glances` system wide with `pip` For example, you can use the following command to install `glances` system wide with `pip`
...@@ -198,7 +198,7 @@ wget https://github.com/Automattic/simplenote-electron/archive/v2.7.0.tar.gz ...@@ -198,7 +198,7 @@ wget https://github.com/Automattic/simplenote-electron/archive/v2.7.0.tar.gz
You can use the command `tar -xvf` to extract this archive You can use the command `tar -xvf` to extract this archive
When you go into the `simplenote-electron-2.7.0` folder, you can see a `Makefile` this means that you can use the `make` command to build Simplenote from those files. `make` Is a tool that read recipes (`Makefiles`) to build programs. When you go into the `simplenote-electron-2.7.0` folder, you can see a `Makefile` this means that you can use the `make` command to build Simplenote from those files. `make` is a tool that read recipes (`Makefiles`) to build programs.
You can try to install `node` and `npx` with `apt`. What happened ? You can try to install `node` and `npx` with `apt`. What happened ?
...@@ -258,5 +258,5 @@ Read the `README` file of the [fastp](https://github.com/OpenGene/fastp) program ...@@ -258,5 +258,5 @@ Read the `README` file of the [fastp](https://github.com/OpenGene/fastp) program
> - make to build programs from sources > - make to build programs from sources
Installing programs and maintain different versions of a program on the same system, is a difficult task. In the next session, we will learn how to use [virtualization](./12_virtualization.html) to facilitate our job. Installing programs and maintain different versions of a program on the same system is a difficult task. In the next session, we will learn how to use [virtualization](./12_virtualization.html) to facilitate our job.
...@@ -79,13 +79,13 @@ sudo apt install virtualbox ...@@ -79,13 +79,13 @@ sudo apt install virtualbox
sudo usermod -G vboxusers -a $USER sudo usermod -G vboxusers -a $USER
``` ```
The first things that we need to do with virtual box is to create a new virtual machine. We want to install Ubuntu 20.04 on it. The first thing that we need to do with virtual box is to create a new virtual machine. We want to install Ubuntu 20.04 on it.
```sh ```sh
VBoxManage createvm --name Ubuntu20.04 --register VBoxManage createvm --name Ubuntu20.04 --register
``` ```
We the create a virtual hard disk for this VM: We create a virtual hard disk for this VM:
```sh ```sh
VBoxManage createhd --filename Ubuntu20.04 --size 14242 VBoxManage createhd --filename Ubuntu20.04 --size 14242
...@@ -103,7 +103,7 @@ We set the virtual RAM ...@@ -103,7 +103,7 @@ We set the virtual RAM
VBoxManage modifyvm Ubuntu20.04 --memory 1024 VBoxManage modifyvm Ubuntu20.04 --memory 1024
``` ```
We add an vitual IDE periferic storage on which we can boot on We add a virtual IDE peripheric storage on which we can boot on.
```sh ```sh
VBoxManage storagectl Ubuntu20.04 --name IDE --add ide --controller PIIX4 --bootable on VBoxManage storagectl Ubuntu20.04 --name IDE --add ide --controller PIIX4 --bootable on
...@@ -138,7 +138,7 @@ You can use the `systemctl` command and the `/` key to search for this daemon. ...@@ -138,7 +138,7 @@ You can use the `systemctl` command and the `/` key to search for this daemon.
Like VirtualBox, you can install system programs within a container. Like VirtualBox, you can install system programs within a container.
Prebuilt container can be found on different sources like [the docker hub](https://hub.docker.com/) or [the biocontainers registry](https://biocontainers.pro/registry). Prebuilt containers can be found on different sources like [the docker hub](https://hub.docker.com/) or [the biocontainers registry](https://biocontainers.pro/registry).
Launching a container Launching a container
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment