Skip to content

Commit 2e3cc10

Browse files
committed
Updated software part.
1 parent df515d1 commit 2e3cc10

File tree

1 file changed

+28
-26
lines changed

1 file changed

+28
-26
lines changed

presentation/linux_bash_metacentrum_course.tex

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4011,21 +4011,21 @@ \subsection{Packages}
40114011
\item System has list of applications available
40124012
\item Updates and bug fixes are installed for all applications using one interface (GUI or command line) --- very reliable
40134013
\item Packages are digitally signed --- security
4014-
\item User can set custom repositories to get new packages
4014+
\item User can set custom repositories to get more package resources
40154015
\item Repositories can be added whenever needed --- check documentation for your distribution (at least basic \enquote{how-to})
40164016
\end{itemize}
4017-
\item The most different task among distributions
4017+
\item The most different task among Linux distributions
40184018
\item Packages have dependencies --- required shared libraries and so on --- use package manager and try to avoid downloading packages from the internet outside repositories
40194019
\item \alert{Read manual for your distribution!}
4020-
\item Package is basically an archive and system has configured directories where to unpack it --- binaries are commonly in \texttt{/usr/bin/}, shared libraries in \texttt{/usr/lib} and \texttt{/sr/lib64}, data in \texttt{/var},~\ldots
4020+
\item Package is basically an archive and system has configured directories where to unpack it --- binaries are commonly in \texttt{/usr/bin/}, shared libraries in \texttt{/usr/lib} and \texttt{/usr/lib64}, data in \texttt{/var},~\ldots
40214021
\item User should not care where parts of packages go to --- system is taking the care --- user can only damage it
40224022
\item Shared libraries are installed automatically whenever required
40234023
\item As all files are placed in standard defined directories, it is very simple to use them also for another applications
40244024
\item Applications not available in repositories, neither as distributional package should be installed into \texttt{$\sim$/bin} for current user or \texttt{/usr/local} for all users (binaries then go into \texttt{/usr/local/bin} and so on)
40254025
\item Common distributions use to provide convenient graphical tool to manage software
40264026
\begin{itemize}
40274027
\item Ubuntu Software Center
4028-
\item Synaptic --- feature rich, graphical, advances, for any DEB distribution
4028+
\item Synaptic --- feature rich, graphical, advances, for any DEB distribution (Debian, Ubuntu, Mint,~\ldots)
40294029
\item Aptitude --- feature rich, command-line, advanced, for any DEB distribution (more advanced version of Apt)
40304030
\item DPKG --- low-level, any DEB-based distribution
40314031
\item YaST Software for openSUSE (feature rich, graphical as well as command-line)
@@ -4048,29 +4048,31 @@ \subsection{Packages}
40484048
40494049
\begin{frame}[allowframebreaks]{Package management in command line in openSUSE and SLE (basic commands)}
40504050
\begin{itemize}
4051-
\item Root password is required: use \texttt{sudo\ldots} or \texttt{su}~-
4051+
\item Root password is required: use \texttt{sudo\ldots} or \texttt{su~-}
40524052
\item Package name \texttt{*.rpm}
40534053
\item \texttt{zypper in \textit{package}} --- install \textit{package}
40544054
\item \texttt{zypper rm \textit{package}} --- remove \textit{package}
40554055
\item \texttt{zypper ref} --- refresh repositories
40564056
\item \texttt{zypper up} --- update
40574057
\item \texttt{zypper dup} -- upgrade to newer release of whole distribution
4058+
\item \texttt{zypper ps -s} -- check which running applications (including SystemD services) should be restarted after update of packages
40584059
\item \texttt{zypper se \textit{term}} --- search \textit{term}
4059-
\item \texttt{zypper} \texttt{pa -{-}orphaned -{-}unneeded} --- list packages, which can be safely removed
4060+
\item \texttt{zypper pa -{-}orphaned -{-}unneeded} --- list packages, which can be safely removed
40604061
\item \texttt{yast sw\_single} --- interactive manager
40614062
\item \texttt{zypper lr} --- list repositories
40624063
\item \texttt{zypper ar \textit{repository}} --- add \textit{repository} (URL of remote \texttt{*.repo} file)
40634064
\item \texttt{zypper rr \textit{repository}} --- remove \textit{repository} (name according to \texttt{zypper lr})
40644065
\item \texttt{zypper mr \textit{repository}} --- modify \textit{repository} (see \texttt{man zypper} first or use \texttt{yast sw\_single})
40654066
\item \texttt{zypper pa \textit{package}} --- get information about particular \textit{package} or another query (e.g. list of dependencies, see \texttt{man zypper})
4067+
\item \texttt{rpmconfigcheck} --- check which configuration files in \texttt{/etc} have new version after update of some software --- compare respective configuration files with new \texttt{*.rpmnew} files
40664068
\item \texttt{rpm*} commands for other tasks
40674069
\item \texttt{man zypper}, \texttt{man rpm} --- usage help
40684070
\end{itemize}
40694071
\end{frame}
40704072
40714073
\begin{frame}[allowframebreaks]{Package management in command line in Debian/Ubuntu and derivatives (basic commands)}
40724074
\begin{itemize}
4073-
\item Root password is required: use \texttt{sudo\ldots} or \texttt{su}~-
4075+
\item Root password is required: use \texttt{sudo\ldots} or \texttt{su~-}
40744076
\item Package name \texttt{*.deb}
40754077
\item \texttt{apt install \textit{package}} --- install \textit{package}
40764078
\item \texttt{apt remove \textit{package}} --- remove \textit{package}
@@ -4085,7 +4087,7 @@ \subsection{Packages}
40854087
\item \texttt{dpkg-*}, \texttt{apt-*} commands for other tasks
40864088
\item \texttt{aptitude} is used in similar way as \texttt{apt} (e.g. \texttt{aptitude install \textit{package}},~\ldots)
40874089
\item Similar tasks can be done with \texttt{apt}, \texttt{apt-get}, or \texttt{aptitude}
4088-
\item \texttt{man aptitude}, \texttt{man apt-XXX} (e.g. \texttt{man apt}), \texttt{man dpkg-XXX}, \texttt{man apt} --- usage help
4090+
\item \texttt{man aptitude}, \texttt{man apt-XXX}, \texttt{man dpkg-XXX}, \texttt{man apt} --- usage help
40894091
\end{itemize}
40904092
\end{frame}
40914093
@@ -4106,18 +4108,18 @@ \subsection{Packages}
41064108
\item \texttt{rpm -e \textit{package}} --- remove \textit{package}
41074109
\item \texttt{rpm*} commands for other tasks
41084110
\item In older releases of Fedora, RedHat and CENTOS, \texttt{yum} is used instead of \texttt{dnf} in nearly identical way
4109-
\item \texttt{man dnf} (or \texttt{man dnf}), \texttt{man rpm} --- usage help
4111+
\item \texttt{man dnf} (or \texttt{man yum}), \texttt{man rpm} --- usage help
41104112
\end{itemize}
41114113
\end{frame}
41124114
41134115
\begin{frame}{Graphical package managers I}{Ubuntu Software, and Synaptic and text-based Aptitude for all DEB-based distributions}
41144116
\begin{center}
4115-
\includegraphics[width=\textwidth-4cm]{software_managers_ubuntu_deb.png}
4117+
\includegraphics[height=6cm]{software_managers_ubuntu_deb.png}
41164118
\end{center}
41174119
\end{frame}
41184120
41194121
\begin{frame}{Graphical package managers II}{GNOME Software in Fedora and YaST in openSUSE}
4120-
\includegraphics[width=\textwidth-2cm]{software_managers_fedora_suse.png}
4122+
\includegraphics[height=5.5cm]{software_managers_fedora_suse.png}
41214123
\begin{itemize}
41224124
\item Practically every common general distribution has some graphical tool\ldots{ }Explore it\ldots
41234125
\end{itemize}
@@ -4137,7 +4139,7 @@ \subsection{Compilation}
41374139
41384140
\begin{frame}[fragile]{Basics of compilation}
41394141
\begin{itemize}
4140-
\item Some software is distributed only as source code written in languages like C or C++ --- user has to compile it to get binary executable
4142+
\item Some software is distributed only as source code (e.g. downloaded from GitHub) written in languages like C or C++ --- user has to compile it to get binary executable
41414143
\item Compilation creates binary specific for particular operating system and hardware platform --- can be tuned for optimal performance
41424144
\item Interpreted languages like Bash, Perl, Python or Java don't have to be compiled (but it is possible) --- they need their interpreter to run, relative easily portable among hardware platforms and OS
41434145
\item Applications requiring compilation usually have good instructions
@@ -4157,8 +4159,8 @@ \subsection{Compilation}
41574159
\item You need to install compilation tools for your distribution and programming languages you are going to use
41584160
\item Commonly, extra dependencies are required to compile the application
41594161
\begin{itemize}
4160-
\item Packages for compilation use to end with -\texttt{dev} or -\texttt{devel} (e.g. if the software requires package \texttt{zlib} to run, install also its developmental version \texttt{zlib-dev(el)} to be able to compile it)
4161-
\item All requirements should be listed in README or INSTALL documents of particular package --- user must install them manually\ldots
4162+
\item Packages for compilation use to end with \texttt{-dev} or \texttt{-devel} (e.g. if the software requires package \texttt{zlib} to run, install also its developmental version \texttt{zlib-dev(el)} to be able to compile it)
4163+
\item All requirements should be listed in README and/or INSTALL documents of particular package --- user must install them manually\ldots
41624164
\end{itemize}
41634165
\end{itemize}
41644166
\vfill
@@ -4167,7 +4169,7 @@ \subsection{Compilation}
41674169
zypper in -t pattern devel_basis devel_C_C++
41684170
# Debian, Ubuntu and derivatives like Linux Mint and others
41694171
apt-get install build-essential # Or "aptitude install build-essential"
4170-
# Red Hat, CENTOS, Fedora and derivatives (2 options)
4172+
# Red Hat, CENTOS, Fedora and derivatives (2 options - dnf or yum)
41714173
dnf groupinstall "Development Tools" "C Development Tools and Libraries"
41724174
yum groupinstall "Development Tools" "C Development Tools and Libraries"
41734175
\end{bashcode}
@@ -4197,22 +4199,22 @@ \subsection{Compilation}
41974199
\begin{frame}[fragile]{Compilation of SAMtools}
41984200
\begin{itemize}
41994201
\item See \url{http://www.htslib.org/download/}
4200-
\item Ensure packages \texttt{zlib} and \texttt{zlib-dev(el) }are installed --- required for running and compilation, see \href{https://github.com/samtools/samtools/blob/master/INSTALL}{INSTALL} and \href{https://github.com/samtools/samtools/blob/master/README}{README}
4202+
\item Ensure packages \texttt{zlib} and \texttt{zlib-dev(el)} are installed --- required for running and compilation, see \href{https://github.com/samtools/samtools/blob/master/INSTALL}{INSTALL} and \href{https://github.com/samtools/samtools/blob/master/README}{README}
42014203
\end{itemize}
42024204
\vfill
42034205
\begin{bashcode}
42044206
wget https://github.com/samtools/samtools/releases/download/1.10/
42054207
samtools-1.10.tar.bz2 # Download SAMtools
42064208
tar xjvf samtools-1.10.tar.bz2 # Unpack the archive
42074209
cd samtools-1.10/ # Go to the unpacked directory
4208-
./configure # Configure settings for compilation
42094210
./configure --help # See various configuring options
4211+
./configure # Configure settings for compilation (default settings)
42104212
./configure --without-curses # Compile without ncurses support
42114213
make # Compile the software - check if there is error
42124214
# Ensure developmental files for zlib (and ncurses) are available
4213-
make install # Copy products into final location - default /usr/local
4214-
make prefix=/where/to/install install # Install into custom location
4215-
make prefix=/home/$USER/bin install # Binary is in /home/$USER/bin/bin
4215+
sudo make install # Copy products into final location - default /usr/local
4216+
sudo make prefix=/where/to/install install # Install into custom location
4217+
make prefix=/home/$USER/bin install # Binary into /home/$USER/bin/bin
42164218
make clean # Cleanup - final files are already in the destination
42174219
\end{bashcode}
42184220
\end{frame}
@@ -4250,7 +4252,7 @@ \subsection{Windows applications}
42504252
\item They must be written in portable language like Java or script like Perl, Python or BASH
42514253
\item Otherwise we need an emulator --- not everything works
42524254
\end{itemize}
4253-
\item Windows 10 has \href{https://docs.microsoft.com/windows/wsl/install-win10}{possibility to run Linux applications}, other option (for more Windows versions) is \href{https://www.cygwin.com/}{Cygwin} (application must be specially compiled to support Cygwin)
4255+
\item Windows 10 has \href{https://docs.microsoft.com/windows/wsl/install-win10}{possibility to run Linux applications}, other option (for more Windows versions) is \href{https://www.cygwin.com/}{Cygwin} (application must be specially compiled to work on Cygwin)
42544256
\item To run Windows applications on Linux use \href{https://www.winehq.org/}{Wine}
42554257
\begin{itemize}
42564258
\item Search for packages named \texttt{wine} and install it
@@ -4274,14 +4276,14 @@ \subsection{Windows applications}
42744276
\item For many Windows-only applications there are fully comparable alternatives
42754277
\end{itemize}
42764278
\item Some applications do not work under Wine (from various reasons), some complex packages are \href{https://www.codeweavers.com/}{supported commercially} (I~have no experience with it)
4277-
\item Wine is well compatible with rest of the Linux hosting system, it is considerable to install Windows in e.g. VirtualBox (or another virtualization platform), if needed
4279+
\item Wine is well compatible with rest of the Linux hosting system, but it is also considerable to install Windows in e.g. VirtualBox (or another virtualization platform), if needed
42784280
\end{itemize}
4279-
\end{frame}
4280-
4281-
\begin{frame}{winefile, winetricks and winecfg}
42824281
\begin{center}
4283-
\includegraphics[width=\textwidth-3.5cm]{wine.png}
4282+
\includegraphics[height=3.25cm]{wine.png}
42844283
\end{center}
4284+
\begin{flushright}
4285+
\texttt{winefile}, \texttt{winetricks} and \texttt{winecfg}
4286+
\end{flushright}
42854287
\end{frame}
42864288
42874289
\section{MetaCentrum}

0 commit comments

Comments
 (0)