You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: presentation/linux_bash_metacentrum_course.tex
+28-26Lines changed: 28 additions & 26 deletions
Original file line number
Diff line number
Diff line change
@@ -4011,21 +4011,21 @@ \subsection{Packages}
4011
4011
\item System has list of applications available
4012
4012
\item Updates and bug fixes are installed for all applications using one interface (GUI or command line) --- very reliable
4013
4013
\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
4015
4015
\item Repositories can be added whenever needed --- check documentation for your distribution (at least basic \enquote{how-to})
4016
4016
\end{itemize}
4017
-
\item The most different task among distributions
4017
+
\item The most different task among Linux distributions
4018
4018
\item Packages have dependencies --- required shared libraries and so on --- use package manager and try to avoid downloading packages from the internet outside repositories
4019
4019
\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
4021
4021
\item User should not care where parts of packages go to --- system is taking the care --- user can only damage it
4022
4022
\item Shared libraries are installed automatically whenever required
4023
4023
\item As all files are placed in standard defined directories, it is very simple to use them also for another applications
4024
4024
\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)
4025
4025
\item Common distributions use to provide convenient graphical tool to manage software
4026
4026
\begin{itemize}
4027
4027
\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)
4029
4029
\item Aptitude --- feature rich, command-line, advanced, for any DEB distribution (more advanced version of Apt)
4030
4030
\item DPKG --- low-level, any DEB-based distribution
4031
4031
\item YaST Software for openSUSE (feature rich, graphical as well as command-line)
@@ -4048,29 +4048,31 @@ \subsection{Packages}
4048
4048
4049
4049
\begin{frame}[allowframebreaks]{Package management in command line in openSUSE and SLE (basic commands)}
4050
4050
\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~-}
4052
4052
\item Package name \texttt{*.rpm}
4053
4053
\item\texttt{zypper in \textit{package}} --- install \textit{package}
\item\texttt{zypper ar \textit{repository}} --- add \textit{repository} (URL of remote \texttt{*.repo} file)
4063
4064
\item\texttt{zypper rr \textit{repository}} --- remove \textit{repository} (name according to \texttt{zypper lr})
4064
4065
\item\texttt{zypper mr \textit{repository}} --- modify \textit{repository} (see \texttt{man zypper} first or use \texttt{yast sw\_single})
4065
4066
\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
4066
4068
\item\texttt{rpm*} commands for other tasks
4067
4069
\item\texttt{man zypper}, \texttt{man rpm} --- usage help
4068
4070
\end{itemize}
4069
4071
\end{frame}
4070
4072
4071
4073
\begin{frame}[allowframebreaks]{Package management in command line in Debian/Ubuntu and derivatives (basic commands)}
4072
4074
\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~-}
\item Practically every common general distribution has some graphical tool\ldots{ }Explore it\ldots
4123
4125
\end{itemize}
@@ -4137,7 +4139,7 @@ \subsection{Compilation}
4137
4139
4138
4140
\begin{frame}[fragile]{Basics of compilation}
4139
4141
\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
4141
4143
\item Compilation creates binary specific for particular operating system and hardware platform --- can be tuned for optimal performance
4142
4144
\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
4143
4145
\item Applications requiring compilation usually have good instructions
@@ -4157,8 +4159,8 @@ \subsection{Compilation}
4157
4159
\item You need to install compilation tools for your distribution and programming languages you are going to use
4158
4160
\item Commonly, extra dependencies are required to compile the application
4159
4161
\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
4162
4164
\end{itemize}
4163
4165
\end{itemize}
4164
4166
\vfill
@@ -4167,7 +4169,7 @@ \subsection{Compilation}
4167
4169
zypper in -t pattern devel_basis devel_C_C++
4168
4170
# Debian, Ubuntu and derivatives like Linux Mint and others
4169
4171
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)
4171
4173
dnf groupinstall "Development Tools""C Development Tools and Libraries"
4172
4174
yum groupinstall "Development Tools""C Development Tools and Libraries"
4173
4175
\end{bashcode}
@@ -4197,22 +4199,22 @@ \subsection{Compilation}
4197
4199
\begin{frame}[fragile]{Compilation of SAMtools}
4198
4200
\begin{itemize}
4199
4201
\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}
\item They must be written in portable language like Java or script like Perl, Python or BASH
4251
4253
\item Otherwise we need an emulator --- not everything works
4252
4254
\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)
4254
4256
\item To run Windows applications on Linux use \href{https://www.winehq.org/}{Wine}
4255
4257
\begin{itemize}
4256
4258
\item Search for packages named \texttt{wine} and install it
\item For many Windows-only applications there are fully comparable alternatives
4275
4277
\end{itemize}
4276
4278
\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
0 commit comments