---
# System prepended metadata

title: 2025 Installation instructions rethinking

---

# 2025 Installation instructions

## The problem

* Installations instructions are the first point of contact
    * It makes or breaks week 2 of the course
* If installation instructions may not match how people usually work.
    * If they see something out of their world, they might think "this course isn't for me"
    * If people see something that looks like what they do, they'll want to engage

Other smaller problems:
- Many people ask "is this thing I am using now OK?" (we used to have a checker script but it wasn't fully reliable)



## The task

* Understand existing install instructions
* Collect list of possible install methods and advantages/disadvantages.
* Decide the recommended options for installing things
* (implementation can be later)

Notes:
* Check pre-workshop survey
    * Icebreakers each day asking about tools
* We are more advanced than carpentries
* Reframe install instructions/registration to make sure it's clear we are moving you to the next level
* Post-workshop survey
* How opinionated (with respect to e.g. editors/interfaces) do we want to become. 
* We teach git/command line/tools that use conda software.  Not vscode/rstudio/etc.
* Command line is much more stable than other IDEs - 
* In the introduction to IDEs, include an explicite instruction of how to get to the command line.
    * Is it easy to switch to the command line?
* Installation should be its own lesson
    * Get blank laptops and install them as part of a co-taught lesson.
* List of software and let their IT department figure it out
* Install instruction as a proper lesson that is taught + recorded on week zero.

## Questions we need to ask learners to make good install instructions



## Git
### Linux
* Package manager installation
  * Add Arch/pacman and SuSe yum
* Locked down systems
### MacOS
* ~~There by default~~
    * Apple ships a binary package of Git with Xcode, otherwise not there by default. (a few versions behind but recent enough).
    * xcode is a normal thing to install for mac users
* For the latest Git version, installation from https://git-scm.com / Homebrew
### Windows
* No deafualt instalation (even powershell do not have it)
    * Possible to get it via WSL - but need admin
* Must be installed, but there seems ot be one standard way to do it (git web page) - this is used by vscode and all.
* When learners use university computers, usually there is a way to distribute popular software. At uio "software center".  Self-installation usually hard.




## Command line / terminal
### Linux
* There by default
### MacOS
* There by default
### Windows
* git prompt
* anaconda prompt
* VScode terminal
* WSL - if Admin access available
* * Powershell could all one to install git without admin
    * Need to check how to get this into vscode
         ```
         PS C:\Users\Sabry Razick> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
         PS C:\Users\Sabry Razick> iwr -useb get.scoop.sh | iex
         PS C:\Users\Sabry Razick> scoop bucket add extras
         PS C:\Users\Sabry Razick> scoop install extras/vscode
      ```
       scoop bucket add extras
    * How to install git on powershell without admin
      ```
         PS C:\Users\Sabry Razick> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
         PS C:\Users\Sabry Razick> iwr -useb get.scoop.sh | iex
         PS C:\Users\Sabry Razick> scoop install git
      ```




## Conda

### Linux
### MacOS
* similar to Linux
* creating an environment is also possible in the VSCode terminal
### Windows







## Other notes

### Operating-system specific notes

#### Linux
#### MacOS
#### Windows
- How to https://github.com/coderefinery/installation/issues/282

### How to introduce the terminal
We want to introduce learners to the concept of the terminal, while not scaring people away.  We should make it clear to learners that terminal is not required, even if we secretly plan on introducing it.

- on day 2 one archaeology exercise needs a terminal
- by day 3 we can show some more terminal (even if not everyone uses it).  "First demo" for future days
- On day 4 (reproducible) learners start to do things with the terminal themselves.
- VSCode's teriminal is a good way to introduce it: it avoids having to open some new program and "cd" to the right directory.
