Mentions légales du service

Skip to content
Snippets Groups Projects
Commit aeb5197d authored by Faure Adrien's avatar Faure Adrien
Browse files

[TutoNix]mer. juin 26 12:55:28 CEST 2019

parent 9c452b9a
Branches
No related tags found
No related merge requests found
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\providecommand \oddpage@label [2]{}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {1}{1}}}
\newlabel{toc<1>}{{2}{3}{}{Doc-Start}{}}
\@writefile{snm}{\beamer@slide {toc<1>}{2}}
\newlabel{toc}{{2}{3}{}{Doc-Start}{}}
\@writefile{snm}{\beamer@slide {toc}{2}}
\@writefile{nav}{\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {2}{2}}}
\@writefile{toc}{\beamer@sectionintoc {1}{Experimentation From a Software Point of View}{3}{0}{1}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {1}{2}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {1}{2}}}
\@writefile{nav}{\headcommand {\sectionentry {1}{Experimentation From a Software Point of View}{3}{Experimentation From a Software Point of View}{0}}}
\@writefile{nav}{\headcommand {\slideentry {1}{0}{1}{3/3}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {3}{3}}}
\@writefile{nav}{\headcommand {\slideentry {1}{0}{2}{4/4}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {4}{4}}}
\@writefile{toc}{\beamer@sectionintoc {2}{Nix}{5}{0}{2}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {3}{4}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {3}{4}}}
\@writefile{nav}{\headcommand {\sectionentry {2}{Nix}{5}{Nix}{0}}}
\@writefile{nav}{\headcommand {\slideentry {2}{0}{1}{5/6}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {5}{6}}}
\@writefile{nav}{\headcommand {\slideentry {2}{0}{2}{7/7}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {7}{7}}}
\@writefile{nav}{\headcommand {\slideentry {2}{0}{3}{8/8}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {8}{8}}}
\@writefile{nav}{\headcommand {\slideentry {2}{0}{4}{9/10}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {9}{10}}}
\@writefile{toc}{\beamer@subsectionintoc {2}{1}{Expression Language}{11}{0}{2}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {5}{10}}}
\@writefile{nav}{\headcommand {\beamer@subsectionentry {0}{2}{1}{11}{Expression Language}}}
\@writefile{nav}{\headcommand {\slideentry {2}{1}{1}{11/11}{Expression Language}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {11}{11}}}
\@writefile{nav}{\headcommand {\slideentry {2}{1}{2}{12/12}{Expression Language}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {12}{12}}}
\@writefile{toc}{\beamer@subsectionintoc {2}{2}{Package Manager}{13}{0}{2}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {11}{12}}}
\@writefile{nav}{\headcommand {\beamer@subsectionentry {0}{2}{2}{13}{Package Manager}}}
\@writefile{nav}{\headcommand {\slideentry {2}{2}{1}{13/13}{Package Manager}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {13}{13}}}
\@writefile{toc}{\beamer@sectionintoc {3}{Nix Structure}{14}{0}{3}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {5}{13}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {13}{13}}}
\@writefile{nav}{\headcommand {\sectionentry {3}{Nix Structure}{14}{Nix Structure}{0}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{1}{14/14}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {14}{14}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{2}{15/17}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {15}{17}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{3}{18/18}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {18}{18}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{4}{19/19}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {19}{19}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{5}{20/20}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {20}{20}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{6}{21/21}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {21}{21}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{7}{22/22}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {22}{22}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{8}{23/23}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {23}{23}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{9}{24/25}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {24}{25}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{10}{26/26}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {26}{26}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{11}{27/27}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {27}{27}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{12}{28/28}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {28}{28}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{13}{29/29}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {29}{29}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{14}{30/30}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {30}{30}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{15}{31/31}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {31}{31}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{16}{32/32}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {32}{32}}}
\global\@namedef{mainendframenumber}{27}
\@writefile{nav}{\headcommand {\gdef \insertmainframenumber {27}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{17}{33/33}{}{0}}}
\@writefile{nav}{\headcommand {\beamer@framepages {33}{33}}}
\@writefile{nav}{\headcommand {\partentry {\translate {Appendix}}{1}}}
\@writefile{nav}{\headcommand {\beamer@partpages {1}{33}}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {14}{33}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {14}{33}}}
\@writefile{nav}{\headcommand {\beamer@appendixpages {34}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{18}{34/34}{}{1}}}
\@writefile{nav}{\headcommand {\beamer@framepages {34}{34}}}
\@writefile{nav}{\headcommand {\beamer@partpages {34}{35}}}
\@writefile{nav}{\headcommand {\beamer@subsectionpages {34}{35}}}
\@writefile{nav}{\headcommand {\beamer@sectionpages {34}{35}}}
\@writefile{nav}{\headcommand {\beamer@documentpages {35}}}
\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {2}}}
\global\@namedef{appendixtotalframenumber}{2}
\global\@namedef{inserttotalframenumber}{27}
\@writefile{nav}{\headcommand {\gdef \inserttotalframenumber {27}}}
\@writefile{nav}{\headcommand {\gdef \appendixtotalframenumber {2}}}
\@writefile{nav}{\headcommand {\slideentry {3}{0}{19}{35/35}{}{1}}}
\@writefile{nav}{\headcommand {\beamer@framepages {35}{35}}}
This diff is collapsed.
\headcommand {\slideentry {0}{0}{1}{1/1}{}{0}}
\headcommand {\beamer@framepages {1}{1}}
\headcommand {\slideentry {0}{0}{2}{2/2}{}{0}}
\headcommand {\beamer@framepages {2}{2}}
\headcommand {\beamer@sectionpages {1}{2}}
\headcommand {\beamer@subsectionpages {1}{2}}
\headcommand {\sectionentry {1}{Experimentation From a Software Point of View}{3}{Experimentation From a Software Point of View}{0}}
\headcommand {\slideentry {1}{0}{1}{3/3}{}{0}}
\headcommand {\beamer@framepages {3}{3}}
\headcommand {\slideentry {1}{0}{2}{4/4}{}{0}}
\headcommand {\beamer@framepages {4}{4}}
\headcommand {\beamer@sectionpages {3}{4}}
\headcommand {\beamer@subsectionpages {3}{4}}
\headcommand {\sectionentry {2}{Nix}{5}{Nix}{0}}
\headcommand {\slideentry {2}{0}{1}{5/6}{}{0}}
\headcommand {\beamer@framepages {5}{6}}
\headcommand {\slideentry {2}{0}{2}{7/7}{}{0}}
\headcommand {\beamer@framepages {7}{7}}
\headcommand {\slideentry {2}{0}{3}{8/8}{}{0}}
\headcommand {\beamer@framepages {8}{8}}
\headcommand {\slideentry {2}{0}{4}{9/10}{}{0}}
\headcommand {\beamer@framepages {9}{10}}
\headcommand {\beamer@subsectionpages {5}{10}}
\headcommand {\beamer@subsectionentry {0}{2}{1}{11}{Expression Language}}
\headcommand {\slideentry {2}{1}{1}{11/11}{Expression Language}{0}}
\headcommand {\beamer@framepages {11}{11}}
\headcommand {\slideentry {2}{1}{2}{12/12}{Expression Language}{0}}
\headcommand {\beamer@framepages {12}{12}}
\headcommand {\beamer@subsectionpages {11}{12}}
\headcommand {\beamer@subsectionentry {0}{2}{2}{13}{Package Manager}}
\headcommand {\slideentry {2}{2}{1}{13/13}{Package Manager}{0}}
\headcommand {\beamer@framepages {13}{13}}
\headcommand {\beamer@sectionpages {5}{13}}
\headcommand {\beamer@subsectionpages {13}{13}}
\headcommand {\sectionentry {3}{Nix Structure}{14}{Nix Structure}{0}}
\headcommand {\slideentry {3}{0}{1}{14/14}{}{0}}
\headcommand {\beamer@framepages {14}{14}}
\headcommand {\slideentry {3}{0}{2}{15/17}{}{0}}
\headcommand {\beamer@framepages {15}{17}}
\headcommand {\slideentry {3}{0}{3}{18/18}{}{0}}
\headcommand {\beamer@framepages {18}{18}}
\headcommand {\slideentry {3}{0}{4}{19/19}{}{0}}
\headcommand {\beamer@framepages {19}{19}}
\headcommand {\slideentry {3}{0}{5}{20/20}{}{0}}
\headcommand {\beamer@framepages {20}{20}}
\headcommand {\slideentry {3}{0}{6}{21/21}{}{0}}
\headcommand {\beamer@framepages {21}{21}}
\headcommand {\slideentry {3}{0}{7}{22/22}{}{0}}
\headcommand {\beamer@framepages {22}{22}}
\headcommand {\slideentry {3}{0}{8}{23/23}{}{0}}
\headcommand {\beamer@framepages {23}{23}}
\headcommand {\slideentry {3}{0}{9}{24/25}{}{0}}
\headcommand {\beamer@framepages {24}{25}}
\headcommand {\slideentry {3}{0}{10}{26/26}{}{0}}
\headcommand {\beamer@framepages {26}{26}}
\headcommand {\slideentry {3}{0}{11}{27/27}{}{0}}
\headcommand {\beamer@framepages {27}{27}}
\headcommand {\slideentry {3}{0}{12}{28/28}{}{0}}
\headcommand {\beamer@framepages {28}{28}}
\headcommand {\slideentry {3}{0}{13}{29/29}{}{0}}
\headcommand {\beamer@framepages {29}{29}}
\headcommand {\slideentry {3}{0}{14}{30/30}{}{0}}
\headcommand {\beamer@framepages {30}{30}}
\headcommand {\slideentry {3}{0}{15}{31/31}{}{0}}
\headcommand {\beamer@framepages {31}{31}}
\headcommand {\slideentry {3}{0}{16}{32/32}{}{0}}
\headcommand {\beamer@framepages {32}{32}}
\headcommand {\gdef \insertmainframenumber {27}}
\headcommand {\slideentry {3}{0}{17}{33/33}{}{0}}
\headcommand {\beamer@framepages {33}{33}}
\headcommand {\partentry {\translate {Appendix}}{1}}
\headcommand {\beamer@partpages {1}{33}}
\headcommand {\beamer@sectionpages {14}{33}}
\headcommand {\beamer@subsectionpages {14}{33}}
\headcommand {\beamer@appendixpages {34}}
\headcommand {\slideentry {3}{0}{18}{34/34}{}{1}}
\headcommand {\beamer@framepages {34}{34}}
\headcommand {\beamer@partpages {34}{35}}
\headcommand {\beamer@subsectionpages {34}{35}}
\headcommand {\beamer@sectionpages {34}{35}}
\headcommand {\beamer@documentpages {35}}
\headcommand {\gdef \inserttotalframenumber {2}}
\headcommand {\gdef \inserttotalframenumber {27}}
\headcommand {\gdef \appendixtotalframenumber {2}}
\headcommand {\slideentry {3}{0}{19}{35/35}{}{1}}
\headcommand {\beamer@framepages {35}{35}}
\BOOKMARK [2][]{Outline0.1}{Experimentation From a Software Point of View}{}% 1
\BOOKMARK [2][]{Outline0.2}{Nix}{}% 2
\BOOKMARK [3][]{Outline0.2.1.11}{Expression Language}{Outline0.2}% 3
\BOOKMARK [3][]{Outline0.2.2.13}{Package Manager}{Outline0.2}% 4
\BOOKMARK [2][]{Outline0.3}{Nix Structure}{}% 5
\BOOKMARK [1][]{Outline1}{Appendix}{}% 6
No preview for this file type
\beamer@slide {toc<1>}{2}
\beamer@slide {toc}{2}
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
\setbeamertemplate{footline}[frame number] \setbeamertemplate{footline}[frame number]
\setbeamertemplate{navigation symbols}{} \setbeamertemplate{navigation symbols}{}
\title{\textbf{A Way Toward Reproducible experiment Environment with Nix}} \title{\textbf{A Way Toward Reproducible Experiment Environment with Nix}}
\date{Rennes 2019, \today} \date{Rennes 2019, \today}
\author{ \author{
\underline{Adrien Faure}, Millian Poquet\\ \underline{Adrien Faure}, Millian Poquet\\
...@@ -96,10 +96,6 @@ ...@@ -96,10 +96,6 @@
\titlepage \titlepage
\end{frame} \end{frame}
\begin{frame}[label=toc]{Overview}
\tableofcontents
\end{frame}
\section{Experimentation From a Software Point of View} \section{Experimentation From a Software Point of View}
\begin{frame}{Experimentation Codes} \begin{frame}{Experimentation Codes}
...@@ -145,9 +141,9 @@ The running environment should be explicit: ...@@ -145,9 +141,9 @@ The running environment should be explicit:
\note{ \note{
How(had-hoc script, complex runtime etc), \\ How(had-hoc script, complex runtime etc), \\
Where(your laptop, your old laptop etc) you run you experiment.\\} Where(your laptop, your old laptop etc) you run you experiment.\\}
\item How you did your final data analysis,
\item How the visualisations are constructed.
\item Documenting how to run the experiment.
\note{The input, the running scripts etc \\}
% \item Using literate programming ? % \item Using literate programming ?
\end{itemize} \end{itemize}
\end{frame} \end{frame}
...@@ -171,147 +167,131 @@ The running environment should be explicit: ...@@ -171,147 +167,131 @@ The running environment should be explicit:
\end{frame} \end{frame}
\begin{frame}{What is Nix ?}
\only<1>{%
Nix is a Package Manager with a lot of good properties. \\
% Why for experimentations ?
\vspace{1em}
\begin{itemize}
\item Reproducibility,
\note{Reproducibility of software\\}
% \item Portability,
\note{Run on my laptop, run of g5k\\}
\item Multiple version cohabitations,
% \item Composability,
\note{why\\}
\item Decentralized package repository,
\note{Packages can come from different places, thus you can have yours.\\}
\item Explicit build process,
\note{Every deps need to be stated\\}
\note{The building process is explicit in Nix\\}
\item Define reconstructible software environments,
\note{Build Once, build twice (six month later)\\}
\note{Possibility to describing full software environment\\}
\note{From building environment, to runtime and data analysis.\\}
\item Application portability
\note{build on my laptop, run on g5k}
\end{itemize}
}
% \center\Large\sc The Nix Ecosystem. {\url{https://nixos.org}}
\end{frame}
\begin{frame}{What is Nix ?}
\only<1>{%
Nix is a Package Manager with a lot of good properties. \\
% Why for experimentations ?
\vspace{1em}
\begin{itemize}
\item Reproducibility,
\note{Reproducibility of software\\}
% \item Portability,
\note{Run on my laptop, run of g5k\\}
\item Multiple version cohabitations,
% \item Composability,
\note{why\\}
\item Decentralized package repository.
\note{Packages can come from different places, thus you can have yours.\\}
\item Explicit build process,
\note{Every deps need to be stated\\}
\note{The building process is explicit in Nix\\}
\item Reconstructible environments.
\note{Build Once, build twice (six month later)\\}
\note{Possibility to describing full software environment\\}
\note{From building environment, to runtime and data analysis.\\}
\item Application portability
\note{build on my laptop, run on g5k}
\end{itemize}
}
% \center\Large\sc The Nix Ecosystem. {\url{https://nixos.org}}
\end{frame}
\begin{frame}{Nix Ecosystem}
Core projects:
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black] \begin{frame}{Nix Ecosystem}
Nix - The Expression Language (2003)
\end{tcolorbox}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black] Core projects:
Nix - The Nix package manager (2003)
\end{tcolorbox}
Satellites: \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
\only<1>{ Nix - The Expression Language (2003)
\end{tcolorbox}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black] \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
NixOS - The Purely Functional Linux Distribution Nix - The Nix package manager (2003)
\end{tcolorbox} \end{tcolorbox}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black] Satellites:
Hydra - Nix-based continuous build system (2008) \only<1>{
\end{tcolorbox}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black] \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
NixOps - The NixOS Deployment Tool (2011) NixOS - The Purely Functional Linux Distribution
\end{tcolorbox} \end{tcolorbox}
}
\only<2>{
\begin{tcolorbox}[colframe=gray!50,colback=gray!1,coltext=gray!100]
NixOS - The Purely Functional Linux Distribution
\end{tcolorbox}
\begin{tcolorbox}[colframe=gray!50,colback=gray!1,coltext=gray!100] \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
Hydra - Nix-based continuous build system (2008) Hydra - Nix-based continuous build system (2008)
\end{tcolorbox} \end{tcolorbox}
\begin{tcolorbox}[colframe=gray!50,colback=gray!1,coltext=gray!100] \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
NixOps - The NixOS Deployment Tool (2011) NixOps - The NixOS Deployment Tool (2011)
\end{tcolorbox} \end{tcolorbox}
} }
\end{frame} \only<2>{
\begin{tcolorbox}[colframe=gray!50,colback=gray!1,coltext=gray!100]
NixOS - The Purely Functional Linux Distribution
\end{tcolorbox}
\begin{tcolorbox}[colframe=gray!50,colback=gray!1,coltext=gray!100]
Hydra - Nix-based continuous build system (2008)
\end{tcolorbox}
\begin{tcolorbox}[colframe=gray!50,colback=gray!1,coltext=gray!100]
NixOps - The NixOS Deployment Tool (2011)
\end{tcolorbox}
}
\end{frame}
\subsection{Expression Language}
\begin{frame}{} \subsection{Expression Language}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
{Nix - The Expression Language } \begin{frame}{Nix - Language}
\end{tcolorbox} \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
What? {Nix - The Expression Language }
\begin{itemize} \end{tcolorbox}
\item Is a Domain Specific Language (DSL) What?
\item Functional, Turing complete language. \begin{itemize}
\item Dynamically typed. int, bool, path, string, set, list, lambda. \item Is a Domain Specific Language (DSL)
\item Large built-in and standard lib. \texttt{stdenv, fetchTarball, fromJson, fromGitHub, assert, test..} \item Functional, Turing complete language.
\end{itemize} \item Dynamically typed. int, bool, path, string, set, list, lambda.
\end{frame} \item Large built-in and standard lib. \texttt{stdenv, fetchTarball, fromJson, fromGitHub, assert, test..}
\end{itemize}
\begin{frame}{} \end{frame}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
{Nix - The Expression Language } \begin{frame}{Nix - Language}
\end{tcolorbox} \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
Why? {Nix - The Expression Language }
\begin{itemize} \end{tcolorbox}
\item Packaging is complex. Why?
\item Abstraction layers. \begin{itemize}
\item Better reusability, factorization. \item Packaging is complex.
\item (Readable and Maintainable) \item Abstraction layers.
\end{itemize} \item Better reusability, factorization.
\end{frame} \item (Readable and Maintainable)
\end{itemize}
\subsection{Package Manager} \end{frame}
\begin{frame}{}{} \subsection{Package Manager}
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
{Nix - The Package Manager } \begin{frame}{Nix}
\end{tcolorbox} \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
\begin{itemize} {Nix - The Package Manager }
\item Packages are defined in Nix expressions \end{tcolorbox}
\item Independent of the system. \begin{itemize}
\item Atomic upgrades and rollbacks \item Packages are defined in Nix expressions,
\item Several version of the same package on the same system % \item Independent of the system,
\item Unprivileged package installation \item Atomic upgrades and rollbacks
\item Provides isolated build \& runtime environments \item Several version of the same package on the same system,
\item Reproducible build from source \item Unprivileged package installation,
\item Binary cache \item Provides isolated build \& runtime environments,
\item Garbage collection \item Reproducible build from source,
\item Declarative \& Imperative use. \item Binary cache,
\end{itemize} \item Garbage collection,
\end{frame} % \item Declarative \& Imperative use.
\end{itemize}
% \begin{frame}{} \end{frame}
% All \emph{official} packages are defined into the repository:
% \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]{Nixpkgs - \textcolor{red}{\url{https://github.com/NixOS/nixpkgs}}} \begin{frame}{}
% \end{tcolorbox} \center
% \begin{columns} How does it work?
% \begin{column}{0.5\textwidth} \end{frame}
% \begin{itemize}
% \item First commit: Mar 2003
% \item \textbf{$>$22 000} packages
% \item \textbf{$>$2 100} contributors
% \end{itemize}
% \end{column}
% \begin{column}{0.5\textwidth}
% \begin{itemize}
% \item \textbf{$>$183 600} commits
% \end{itemize}
% \end{column}
% \end{columns}
% \end{frame}
\section{Nix Structure} \section{Nix Structure}
...@@ -319,7 +299,7 @@ The running environment should be explicit: ...@@ -319,7 +299,7 @@ The running environment should be explicit:
% Nix borrows its concept from Functional Languages. \\ % Nix borrows its concept from Functional Languages. \\
\begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black] \begin{tcolorbox}[colframe=black,colback=gray!10,coltext=black]
Nix applies the concept of functional programming languages to packages management. Nix applies the concept of functional programming languages to package management.
\end{tcolorbox} \end{tcolorbox}
\vspace{1em} \vspace{1em}
...@@ -327,7 +307,7 @@ The running environment should be explicit: ...@@ -327,7 +307,7 @@ The running environment should be explicit:
\note{Function from a functional paradigm point of view} \note{Function from a functional paradigm point of view}
\vspace{1em} \vspace{1em}
Packages dependencies are also functions given as inputs. Package dependencies are also functions given as inputs.
\vspace{1em} \vspace{1em}
Such functions are called \textbf{Derivations} Such functions are called \textbf{Derivations}
...@@ -527,13 +507,14 @@ The result of the build action is automatically placed into the nix store. ...@@ -527,13 +507,14 @@ The result of the build action is automatically placed into the nix store.
\item nixpkgs-19.03 (current stable) \item nixpkgs-19.03 (current stable)
\item nixpkgs-18.09 (outdated) \item nixpkgs-18.09 (outdated)
\end{itemize} \end{itemize}
}
\only<2>{ \only<2>{
\begin{tcolorbox}[colframe=red!37,colback=red!10,coltext=black] \begin{tcolorbox}[colframe=red!37,colback=red!10,coltext=black]
\center \center
Channels are not fully reproducible, as they are subject to updates. Channels are not fully reproducible, as they are subject to updates.
\end{tcolorbox} \end{tcolorbox}
\vspace{1em} \vspace{1em}
As experimenters, we will use another mechanism called pinning. As experimenters, we will use another mechanism called pinning.
} }
......
\beamer@sectionintoc {1}{Experimentation From a Software Point of View}{3}{0}{1}
\beamer@sectionintoc {2}{Nix}{5}{0}{2}
\beamer@subsectionintoc {2}{1}{Expression Language}{11}{0}{2}
\beamer@subsectionintoc {2}{2}{Package Manager}{13}{0}{2}
\beamer@sectionintoc {3}{Nix Structure}{14}{0}{3}
\center Thanks.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment