|
| 1 | +\documentclass{beamer} |
| 2 | +\usepackage[utf8]{inputenc} |
| 3 | +\usepackage[T1]{fontenc} |
| 4 | +\usepackage[czech]{babel} |
| 5 | + |
| 6 | +\setbeamerfont{title}{size=\LARGE} |
| 7 | + |
| 8 | +\title{Instalace balíčků} |
| 9 | +\author{Eliška Jégrová} |
| 10 | +\date{11. 11. 2025} |
| 11 | + |
| 12 | +% pro obrázky a kreslení |
| 13 | +\usepackage{tikz} |
| 14 | +\usetikzlibrary{positioning} |
| 15 | +\usepackage{graphicx} |
| 16 | +\usepackage{datetime} |
| 17 | +\usepackage{svg} |
| 18 | +\usepackage{listings} |
| 19 | +\usepackage{dirtree} |
| 20 | + |
| 21 | + |
| 22 | +% vlastní příkaz pro tildy |
| 23 | +\newcommand{\ts}{\raisebox{-0.25em}{\textasciitilde}} |
| 24 | + |
| 25 | +\begin{document} |
| 26 | + |
| 27 | + \frame{\titlepage} |
| 28 | + |
| 29 | + \begin{frame}{Obsah} |
| 30 | + \tableofcontents |
| 31 | + \end{frame} |
| 32 | + |
| 33 | +\section{Balíčky v Linuxu} |
| 34 | + |
| 35 | +\begin{frame}{Balíčky v Linuxu} |
| 36 | + \begin{itemize} |
| 37 | + \item Programy v Linuxu jsou většinou baleny do \textbf{balíčků}. |
| 38 | + \item Balíčky obsahují: |
| 39 | + \begin{itemize} |
| 40 | + \item vlastní program nebo knihovny, |
| 41 | + \item informace o verzi, |
| 42 | + \item seznam závislostí (co je nutné mít nainstalováno), |
| 43 | + \item konfigurace, |
| 44 | + \item manuálové stránky, dokumentace, |
| 45 | + \item instalační skripty (ne nutně). |
| 46 | + \end{itemize} |
| 47 | + \item Každá distribuce má svůj vlastní systém správy balíčků. |
| 48 | + \end{itemize} |
| 49 | +\end{frame} |
| 50 | + |
| 51 | + |
| 52 | + |
| 53 | +\begin{frame}{Základní a nadstavbové systémy} |
| 54 | + \begin{itemize} |
| 55 | + \item Na systémech jsou obvykle dva balíčkovací systémy: |
| 56 | + \begin{itemize} |
| 57 | + \item \textbf{Základní:} stará se o instalaci a evidenci (\texttt{rpm}) |
| 58 | + \item \textbf{Nadstavbová:} řeší stahování a závislosti (\texttt{dnf}) |
| 59 | + \end{itemize} |
| 60 | + |
| 61 | + \vspace{1em} |
| 62 | + \begin{itemize} |
| 63 | + \item Všechny spravují software dostupný všem uživatelům |
| 64 | + \item Pro instalaci je potřeba oprávnění superuživatele |
| 65 | + \end{itemize} |
| 66 | + |
| 67 | + \end{itemize} |
| 68 | +\end{frame} |
| 69 | + |
| 70 | +\begin{frame}{Různé distribuce, různé nástroje} |
| 71 | + \begin{center} |
| 72 | + \begin{tabular}{|l|l|} |
| 73 | + \hline |
| 74 | + \textbf{Distribuce} & \textbf{Základní systém správy balíčků} \\ |
| 75 | + \hline |
| 76 | + Debian, Ubuntu & APT (dpkg) \\ |
| 77 | + Fedora, CentOS & DNF (RPM) \\ |
| 78 | + openSUSE & Zypper (RPM) \\ |
| 79 | + Arch Linux & Pacman \\ |
| 80 | + \hline |
| 81 | + \end{tabular} |
| 82 | + \end{center} |
| 83 | +\end{frame} |
| 84 | + |
| 85 | + |
| 86 | +\section{RPM} |
| 87 | +\begin{frame}[fragile]{RPM – informace o balíčcích} |
| 88 | + \begin{itemize} |
| 89 | + \item Dotaz na verzi balíčku |
| 90 | + |
| 91 | + \texttt{\$ rpm -q bash \\ |
| 92 | + bash-5.2.37-1.fc42.x86\_64 \\ |
| 93 | + \$ rpm -q kernel \\ |
| 94 | + kernel-6.17.7-200.fc42.x86\_64} |
| 95 | + |
| 96 | + \vspace{0.5em} |
| 97 | + |
| 98 | + \texttt{\$ rpm -qi bash \\ |
| 99 | + Name : bash \\ |
| 100 | + Version : 5.2.37 \\ |
| 101 | + Release : 1.fc42 \\ |
| 102 | + Architecture: x86\_64 \\ |
| 103 | + Install Date: Wed 09 Apr 2025 02:05:13 PM CEST \\ |
| 104 | + Group : Unspecified \\ |
| 105 | + Size : 8547020 \\ |
| 106 | + License : GPL-3.0-or-later \\ |
| 107 | + ...} |
| 108 | + \end{itemize} |
| 109 | +\end{frame} |
| 110 | + |
| 111 | +\begin{frame}[fragile]{RPM – informace o balíčcích} |
| 112 | + \begin{itemize} |
| 113 | + \item Zobraz všechny soubory které balíček obsahuje |
| 114 | + |
| 115 | + \texttt{\$ rpm -q -l bash \\ |
| 116 | + /etc/skel/.bash\_logout \\ |
| 117 | + /etc/skel/.bash\_profile \\ |
| 118 | + /etc/skel/.bashrc \\ |
| 119 | + /usr/bin/alias \\ |
| 120 | + /usr/bin/bash \\ |
| 121 | + /usr/bin/bashbug \\ |
| 122 | + /usr/bin/bashbug-64 \\ |
| 123 | + /usr/bin/bg \\ |
| 124 | + /usr/bin/cd \\ |
| 125 | + /usr/bin/command \\ |
| 126 | + /usr/bin/fc \\ |
| 127 | + ...} |
| 128 | + |
| 129 | + \end{itemize} |
| 130 | +\end{frame} |
| 131 | + |
| 132 | +\begin{frame}[fragile]{RPM – závislosti} |
| 133 | + \begin{itemize} |
| 134 | + \item Dotaz na závislosti balíčku (co potřebuje bash) \\ |
| 135 | + \texttt{\$ rpm -q -{}-requires bash\\ |
| 136 | + /usr/bin/sh\\ |
| 137 | + config(bash) = 5.2.37-1.fc42\\ |
| 138 | + filesystem >= 3\\ |
| 139 | + libc.so.6()(64bit)\\ |
| 140 | + libc.so.6(GLIBC\_2.11)(64bit)} |
| 141 | + |
| 142 | + \vspace{1em} |
| 143 | + \item Dotaz - jaký balíček poskytuje danou závislost |
| 144 | + |
| 145 | + \texttt{\$ rpm -q -{}-whatprovides 'libc.so.6()(64bit)'} |
| 146 | + \texttt{glibc-2.41-11.fc42.x86\_64} |
| 147 | + |
| 148 | + \end{itemize} |
| 149 | +\end{frame} |
| 150 | + |
| 151 | + \begin{frame}{Samostatné práce 1 – Informace o balíčku} |
| 152 | + Zjisti informace o balíčcích \texttt{coreutils} a \texttt{firefox}: |
| 153 | + \begin{itemize} |
| 154 | + \item Verze balíčků |
| 155 | + \item Podrobné informace (-i) |
| 156 | + \item Seznam souborů, které balíček obsahuje (-l) |
| 157 | + \end{itemize} |
| 158 | +\end{frame} |
| 159 | + |
| 160 | +\begin{frame}{Samostatné práce 2 – Závislosti balíčku} |
| 161 | + Zjisti závislosti a poskytovatele knihoven: |
| 162 | + \begin{itemize} |
| 163 | + \item Zjisti, jak se jmenuje balíček pro vim (/usr/bin/vim) |
| 164 | + \item Jaké závislosti má balíček \texttt{vim}? (requires)\\ |
| 165 | + \item Který balíček poskytuje \texttt{libacl.so.1()(64bit)}? (whatprovides)\\ |
| 166 | + \end{itemize} |
| 167 | +\end{frame} |
| 168 | + |
| 169 | + |
| 170 | +\section{Repozitář} |
| 171 | +\begin{frame}{Repozitář} |
| 172 | + \begin{itemize} |
| 173 | + \item Příkaz \texttt{rpm} nekomunikuje po internetu – neumí vyhledávat balíčky, které nejsou nainstalované |
| 174 | + \vspace{0.8em} |
| 175 | + |
| 176 | + \item Nemůžeme zjistit, který balíček obsahuje určitý soubor, pro nenainstalované programy: |
| 177 | + |
| 178 | + \texttt{\$ rpm -q -{}-whatprovides /usr/bin/sl}\\ |
| 179 | + chyba: soubor \texttt{/usr/bin/sl}: Adresář nebo soubor neexistuje |
| 180 | + |
| 181 | + \item K tomu je potřeba prohlédnout repozitář – seznam všeho softwaru, který Fedora poskytuje |
| 182 | + \end{itemize} |
| 183 | +\end{frame} |
| 184 | + |
| 185 | +\section{DNF} |
| 186 | +\begin{frame}{Repozitář – práce s \texttt{dnf}} |
| 187 | + \begin{itemize} |
| 188 | + \item Obdoba příkazu \texttt{rpm -q} je \texttt{dnf repoquery}: |
| 189 | + |
| 190 | + \texttt{\$ dnf repoquery -{}-whatprovides /usr/bin/sl}\\[0.2em] |
| 191 | + \texttt{Fedora 42 - x86\_64 \hspace{1em} 6.8 MB/s | 74 MB 00:10}\\ |
| 192 | + \texttt{sl-0:5.02-23.fc42.x86\_64} |
| 193 | + |
| 194 | + \vspace{1em} |
| 195 | + \item Při prvním použití stahuje metadata o repozitářích. |
| 196 | + \item Při dalším spuštění zobrazí jak stará metadata má k dispozici |
| 197 | + \end{itemize} |
| 198 | +\end{frame} |
| 199 | + |
| 200 | +\begin{frame}{Instalace a odinstalace} |
| 201 | + \begin{itemize} |
| 202 | + \item \texttt{rpm} umí instalovat (\texttt{-i}) a mazat (\texttt{-e}) balíčky, ale: |
| 203 | + \begin{itemize} |
| 204 | + \item neřeší závislosti ani stahování, |
| 205 | + \item hodí se jen ve zvláštních případech (např. odpojené systémy). |
| 206 | + \end{itemize} |
| 207 | + \vspace{1em} |
| 208 | + \item Pro běžnou správu se používá \texttt{dnf}: |
| 209 | + |
| 210 | + \texttt{\$ dnf install <balíček>} \\ |
| 211 | + \texttt{\$ dnf remove <balíček>} \\ |
| 212 | + \texttt{\$ dnf update} |
| 213 | + |
| 214 | + |
| 215 | + \vspace{1em} |
| 216 | + \item Příklad: \\ |
| 217 | + \texttt{\$ sudo dnf install sl}\\ |
| 218 | + \texttt{\$ sudo dnf remove -y htop} |
| 219 | + \vspace{1em} |
| 220 | + \item Přepínač \texttt{-y} = automaticky odpovídá „ano“ |
| 221 | + \end{itemize} |
| 222 | +\end{frame} |
| 223 | + |
| 224 | +\section{Konfigurace repozitáře} |
| 225 | +\begin{frame}{Repozitáře} |
| 226 | + \begin{itemize} |
| 227 | + \item konfigurace repozitářů v \texttt{/etc/yum.repos.d/} |
| 228 | + \item Fedora neobsahuje některé balíčky (např. MP3, videa) kvůli patentům. |
| 229 | +\item RPM Fusion = evropský projekt s volným i uzavřeným softwarem: |
| 230 | +\begin{itemize} |
| 231 | + \item \texttt{free} – open source, volně používat, měnit, zkoumat |
| 232 | + \item \texttt{nonfree} – uzavřený software, např. Steam |
| 233 | +\end{itemize} |
| 234 | +\vspace{1em} |
| 235 | +\item zkus nainstalovat program \texttt{mplayer} |
| 236 | + \end{itemize} |
| 237 | +\end{frame} |
| 238 | + |
| 239 | +\begin{frame}{Instalace repozitáře RPM Fusion} |
| 240 | + \begin{itemize} |
| 241 | + \item https://rpmfusion.org/ |
| 242 | + \end{itemize} |
| 243 | + \begin{itemize} |
| 244 | + \item Při první instalaci se DNF zeptá, zda důvěřuje GPG klíčům. |
| 245 | + \begin{itemize} |
| 246 | + \item lze ověřit na rpmfusion.org/keys |
| 247 | + \end{itemize} |
| 248 | + \vspace{0.5em} |
| 249 | + \item Po úspěšné instalaci bude balíček \texttt{rpmfusion-free-release} obsahovat konfiguraci repozitáře. \\ |
| 250 | + \texttt{\$ rpm -ql rpmfusion-free-release |
| 251 | + /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-2020 |
| 252 | + /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-latest |
| 253 | + /etc/yum.repos.d/rpmfusion-free-updates.repo |
| 254 | + /etc/yum.repos.d/rpmfusion-free.repo \\ |
| 255 | + ...} |
| 256 | + \end{itemize} |
| 257 | +\end{frame} |
| 258 | + |
| 259 | + \begin{frame}{Samostatné práce 3 – Práce s repozitáři a dnf} |
| 260 | + Zjisti balíček, který obsahuje program \texttt{terminator}, i když není nainstalovaný (/usr/bin/terminator) |
| 261 | + \begin{itemize} |
| 262 | + \item Nainstaluj balíček |
| 263 | + \item Odinstaluj balíček |
| 264 | + \end{itemize} |
| 265 | + \end{frame} |
| 266 | + |
| 267 | + \begin{frame}{Samostatné práce 4 – Instalace specifické verze balíčku } |
| 268 | + Zjisti verze balíčku htop, které se dají nainstalovat (repoquery) |
| 269 | + \begin{itemize} |
| 270 | + \item Nainstaluj starší verzi: 3.3.0 |
| 271 | + \item Nainstaluj nejnovější verzi. |
| 272 | + \end{itemize} |
| 273 | +\end{frame} |
| 274 | + |
| 275 | +\end{document} |
0 commit comments