File: README.md
In Chinese?
如果你在参加中文课程,请打开中文设置指南
¿En Español?
Haga clic en este enlace para acceder a la versión en español de la configuración.
Em Português?
Clique neste link para acessar a versão em português da configuração.
En Français ?
Clique sur ce lien pour accéder à la version française du setup.
In English
Setup guides for Le Wagon AI Software Development course. Please choose your operating system (OS):
File: docs/macos_cheatsheet.md
Hello and welcome to this macOS cheatsheet.
The goal is to gather here all known issues and tips with the macOS setup.
Issues
Brew HEAD not linked to origin/master ?
If you get one of the following error while installing a binary
~ % brew install git
fatal: Could not resolve HEAD to a revision
No available formula or cask for the name "git"This should help
git -C $(brew --repository homebrew/core) checkout masterError: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins
If you get a Homebrew error Permission denied @ apply2files with "docker" in the path that follows,
run
mkdir -p /Applications/Docker.app/Contents/Resources/cli-pluginsand then rerun brew cleanup.
See for more info
File: docs/pull_request_template.md
How to contribute to the Setup repository
Before opening a Pull Request
We know that encountering issues can be frustrating but before opening a PR to modify the setup that can theoretically be used by a few thousand people:
- Are you the only one experiencing this issue?
- Is it a temporary issue?
- Is it a quick fix and shouldn't be used in the long term?
We currently have a cheatsheet for each OS for tips and / issues that don't belong to the setup itself, so feel free to have a look there first. Maybe your contributing should live there:
Opening a Pull Request
We have a specific architecture for the setup so we can reuse part of the content for different platforms (macOS/Windows/Ubuntu).
There are 2 main folders _partials and images:
- images is where the images live
- partials_ is where the content live. For example, setting up Github is not platform dependent. So we have a
_partials/github.mdfile with the guidelines to setup Github. This allows us to reuse the content described there.
Naming convention
Partials prefixed with the OS are specific to only one OS. Partials shared among two or more OSes have no prefix.
Build
build.rb is the code that generates the 3 files macos.md, ubuntu.md & windows.md and the corresponding chinese translated versions. For each platform, there is a list of partials to use.
To update any content, it is required to update the matching partial. The CI will then run ruby build.rb and commit the changes to the main md files on the branch.
If you modify directly the destination file (macos.md, ubuntu.md & windows.md) without modifying the partials, your changes will be overridden the next time someone (or the CI) runs ruby build.rb
This is the flow you need to follow:
- Identify the partial(s) in which you want to make modifications
- Make changes
- Open PR
- Check files after the CI build
- Ask for a review
Many thanks for contributing 🙌 🚀
File: docs/ubuntu_cheatsheet.md
Hello and welcome to this Ubuntu cheatsheet.
The goal is to gather here all known issues and tips with the Ubuntu setup.
Issues
No Devices choice at reboot
Make sure Windows FastBoot is disabled and restart in Advanced Mode.
No OS choice at reboot
Disable Windows FastBoot & Bios FastBoot (see below).
OR
Access the Bios and change Boot option ONE by ONE <=> choose an option, save, reboot, if your problem persists, come back to default Boot option, choose another option and move on.
Disable Bios FastBoot
- Restart your machine in default mode and keep pushing on F2 or F11 or Suppr. to access the Bios.
- Look for the boot options to disable the Bios FastBoot
GitHub CLI installation failure
If the GitHub CLI installation instructions fail, chances are that you have the package gitsome installed. This package provides a gh binary which can conflict with gh GitHub CLI binary. In this case, run sudo apt remove gitsome before running the GitHub CLI installation instructions again.
File: docs/windows_cheatsheet.md
Hello and welcome to this Windows cheatsheet.
The goal is to gather here all known issues and tips with the Windows setup.
Issues
Network Unreachable
When trying to connect to remote hosts, eg. when trying to do sudo apt update, you might see an error message saying that the network is unreachable. Here are two possible solutions: if the first one doesn't help, try the second one.
A note about diagnosing this problem
- This is a common networking issue, and we must be sure that the problem lies with WSL only, and not with the Windows host. Please first ensure that there are no known networking issues on Windows. If you can successfully browse a few sites on Windows, but you can't connect to the internet in WSL, it would appear that this is an WSL problem. Please continue to the next section.
Refresh and reset network
Start>cmd> 'Open as administrator'- Run the following commands:bash
wsl --shutdown netsh winsock reset netsh int ip reset all netsh winhttp reset proxy ipconfig /flushdns - Reset the network (
Start> Search forNetwork Reset; clickReset) - Restart Windows
- Source. There might be other relevant solutions there.
- If this still does not solve your problem, try the next section.
Add a custom DNS server address to WSL
- Open a WSL terminal and type the following:bash
sudo mv /etc/resolv.conf /etc/resolv.conf.old sudo touch /etc/resolv.conf sudo echo "[network]\ngenerateResolvConf = false\n" >> /etc/wsl.conf - You should now have internet access within the WSL terminal.
- Ensure that the fix works even when WSL is restarted. Open PowerShell and run the following command:bash
wsl.exe --shutdown - Open a new WSL terminal. You should be able to access the internet.
- Source.
Uncompressed and Unencrypted error
When running wsl --set-default-version 2, you might get a:
Error: 0xc03a001a The requested operation could not be completed due to a virtual disk system limitation. Virtual hard disk files must be uncompressed and unencrypted and must not be sparse.To fix this issue, open the File Explorer and go to:C:\Users\<YOUR_USERNAME>\AppData\Local\Packages\CanonicalGroupLimited<SOMETHING>
It should look something like this:
Right click on LocalState, then Properties, then Advanced.
Ensure Compress contents to save disk space and Encrypt contents to secure data are both deselected.
Click OK, then Apply, then Apply changes to this folder only.
Input/Output error
This happens when the hidden wslhost.exe is not working. We just need to restart it!
Close all WSL2 tabs.
Open a PowerShell tab and run the following command:
wsl.exe --shutdownCheck that your Ubuntu is properly stopped with the command
wsl -l -vOpen a new WSL2 Tab, problem should be fixed.
ERR_CONNECTION_REFUSED / Unable to reach localhost
If you get this error trying to connect to your rails server, serve or jupyter notebook, a simple restart of WSL might do the trick.
- Open a new PowerShell tab
- Run
wsl --shutdownto shutdown WSL. - Open a new PowerShell tab or run
wslto restart WSL. - Retry to connect to
localhost:xxxx. You can as well try127.0.0.1:xxxx(the local IP of the machine) instead.
If the issue is still present, you need to allow the connection in Windows Defender Public rules.
Close all WSL terminal. Open a PowerShell terminal and type the following command to stop all WSL processes:
wsl --shutdown UbuntuHit Start and type Windows Defender Firewall and open it.
Click on Advanced Settings
Right click on Inboud Rules and select New Rule.... Under Rule Type leave Program selected and hit Next.
For the program, Select The program path: and paste this path: %SystemRoot%\System32\wsl.exe. Click on Next.
For the Action section, make sure Allow the connection is selected and hit Next.
For the Profile section, make sure the 3 options are selected and click on Next.
Finally you will be asked to chose a name for this new rule, go with WSL - Inbound.
Repeat the whole process by creating a Outbound Rule with the same settings, except for the name: WSL - Outbound.
Insecure World Writable
The warning Insecure world writable dir /mnt/c in PATH, mode 040777 is caused by the two differents way of Windows & Linux to deal with file permissions.
To silence those warnings:
sudo touch /etc/wsl.conf
echo '[automount]' | sudo tee -a /etc/wsl.conf > /dev/null
echo 'options="metadata,umask=0033"' | sudo tee -a /etc/wsl.conf > /dev/nullRestart all terminals.
Update version 2004 not offered
Microsoft is slowly releasing the latest major version of Windows (version 2004). Here is the guideline if your Windows is not offering you the update.
Go to Windows 10 and under Windows 10 May 2020 Update click on Update now. This will download a tool on your machine. Open it.
A compatibility check will start:
Next, you will be offered a choice, choose Upgrade this PC now and click on Next:
Let the tool do the work:
Microsoft is encountering some errors with the version 2004, Chances are that the update assistant will tell you that you're machine is not compatible yet!
Do not close the assistant.
Open a file explorer at this path C:\$WINDOWS.~BT\Sources\Panther
Locate the file compatscancache.dat and delete it
Go back to the update assistant and click Refresh.
The installation should carry on.
Sudo apt update connection timed out
This happens if you're using AVG antivirus.
Disable AVG VPN if you're using it.
Open AVG Internet Security -> Menu - Settings - Full Protection - Enhanced firewall. Check Enable Internet connection sharing mode
On the same page, click on System Rules and enabled the first 2 options Windows file & printer sharing Remote desktop connections
Scroll down to click on save.
Slow network
If you experience slow network on your fresh WSL2:
Open Ubuntu (or your other distro)
Open Network Connections in your settings ("View network connections" in your windows search)
You should see
vEthernet (WSL)
Enabled
Hyper-V Virtual Ethernet AdapterRight-click and open Properties
In the Properties pane, click Configure...
In the Configure pane, go to the "Advanced" Tab
Click on "Large Send Offload Version 2" and update the value to "Disabled"
If you see two "Large Send Offload Version" options, disable both.
Cloudinary: Stale request
If you see issues connecting to your Cloudinary API from your local WSL and you saw this error.
Stale request - reported time is 2016-12-15 04:14:53 +0000 which is more than 1 hour agoThe error is caused by a different system time between the WSL OS and the windows host machine. To fix it, please run this command in your windows terminal:
sudo hwclock -sType your WSL password and click enter.
GitHub CLI installation failure
If the GitHub CLI installation instructions fail, chances are that you have the package gitsome installed. This package provides a gh binary which can conflict with gh GitHub CLI binary. In this case, run sudo apt remove gitsome before running the GitHub CLI installation instructions again.
Tips
Check Windows Subsystem for Linux
Open a PowerShell terminal.
Type the following command:
wsl -l -vIt will tell you the name of your WSL, it's state and version.
Switch from version 1 to version 2
To switch a WSL from version 1 to 2, open a PowerShell terminal.
Type the following command:
⚠️ The conversion's time depends on the size of your Ubuntu filesystem, it can be long and WSL will be unsuable in the meantime. ⚠️
wsl --set-version Ubuntu 2You can revert to version 1:
wsl --set-version Ubuntu 1Access root session
To access the root session, open a PowerShell terminal.
Type the following command:
wsl -d Ubuntu -u rootYou can change the password of that root session by using the command:
passwdYou will prompted to enter a new password.
Now, from your normal session, you can switch from your session to the root on with:
su -You will be asked for the password.
You can exit the root session with Ctrl + D.
Testing on Rails
You need to have the latest version of Chrome installed on your machine to run tests on Rails, since we will use Headless Chrome for System Testing. It's a browser without a user interface, well-suited for this kind of automated tests. Before running your system tests you need to make sure you have a recent version of Chrome on your system (not Chromium).
If you are getting a Webdrivers::BrowserNotFound: Failed to find Chrome binary error when running tests, it means that you are missing Chrome on your system or need to install the latest version:
# Ubuntu
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
rm -rf google-chrome-stable_current_amd64.debOnce installed, you can run your tests with:
rails test:systemFile: README.cn.md
新同学
你在中国吗?
开始设置之前,:point_down: 你可能会需要用到 VPN,所以保证你有 VPN,或者让老师为你提供一个。
全球
Le Wagon的设置指南。请选择你电脑的操作系统(OS):
File: README.es.md
¿En Español?
Guías de configuración para el curso de AI Software Development de Le Wagon. Elige tu sistema operativo (OS):
File: README.fr.md
En Français
Guides de configuration pour la formation AI Software Development du Wagon. Choisis ton système d’exploitation (OS):
File: README.pt.md
Em Português?
Guias de configuração para o curso de AI Software Development Le Wagon. Escolha seu sistema operacional (SO):