Upgrade Raspbian Jessie to RaspbianStretch
Marco Franssen

Loading...
Marco Franssen

Very recently I have upgraded my Raspberry 3 to the new Raspbian OS, code named "Stretch". Due to some security issues in the chipset of the Raspberry Pi 3 and Raspberry zero, I decided to upgrade mine to Raspbian Stretch, which resolves these security issues.
Before you get yourself into any trouble make sure to have a backup of any important data and also please note I can't be responsible for any data loss. In this guide I also assume you know how to connect to your raspberry using ssh and how to use the commandline.
First check if you are running Raspbian Jessie release as following guide only is tested by upgrading from Jessie. You can check this using the following command.
cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
NAME="Raspbian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"In case you are not running Raspbian Jessie 8.0, I can't guarantee following guide will work. If you are brave enough to continue please let me and other readers know in the comments below if it also works for prior Jessie versions.. Once again make sure important data is backed up.
Before starting the upgrade I recommend to first make sure your current version Raspbian Jessie has all packages upgraded. You can do so by running following commands.
sudo apt update
sudo apt -y upgradeThen before upgrading the Raspbian distro I also first did an upgrade of my raspberry firmware which can be done using following command. It upgrades the kernel VideoCore lib etc. A reboot is required after the firmware update.
sudo rpi-update
sudo reboot nowNow it is time to prepare for the distro upgrade to start using Raspbian Stretch. For that we have to change the apt sources to point to the Raspbian Stretch apt repositories. For that we have to change the following 2 files /etc/apt/sources.list and /etc/apt/sources.list.d/raspi.list by replacing jessie with the word stretch. You can do that manually using vim or use following command to get the text automatically replaced.
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list
sudo sed -i 's/jessie/stretch/g' /etc/apt/sources.list.d/raspi.listNow we have upgraded the apt repositories to Raspbian Stretch we are ready to run the upgrade. Please note this can take a while as it has to download all the new binaries which is a few hundred MB at least. Do note your input is required a few times during the installation process so do check every few minutes to keep the upgrade going. Also consider donating some CPU cycles using the widget on my sidebar while waiting for the upgrade, to support the hosting costs of my webpage.
sudo apt update
sudo apt -y dist-upgradeAccording to resources on raspberryppi.org the bluetooth pulseaudio package in Raspbian Jessie was a bit clumsy. This has been improved by using the replacement bluez-alsa package in Raspbian Stretch.
Now with the upgrade done it is time to remove pulseaudio as this package is replaced with bluez-alsa package in Raspbian Stretch to make bluetooth audio work with ALSA. So unless you build your own stuff on top of pulseaudio we can remove this package using following command.
sudo apt-get -y purge "pulseaudio*"Now it is time to reboot and say some prayers or do whatever you do at such moments (grabbing a coffee).
sudo reboot nowAfter rebooting the Pi I also recommend to do one more check for package updates and remove old packages running following commands. This saves some storage, plus I like to have my servers clean and tidy.
sudo apt update
sudo apt -y upgrade
sudo apt -y autoremove
sudo apt -y autocleanThat was all. You got your Raspberry fully updated now with latest security patches for the chipsets as well running latest stable Raspbian version. Please leave a comment below on your findings. Don't hesitate to ask any questions, and for the brave ones who ofcourse took that backup before jumping into the deep, please share your feedback if this guide also covers upgrading from earlier versions of Raspbian.
$ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"Marco Franssen
As we started 2 years ago with a micro-service architecture we faced some issues in the productivity of the teams a while ago. This made me think what we could do about that from an architecture and development point of view. As we used different Git repos for the various components of our micro services in the long run it became harder and harder for developers to work with those components. At that point in time I decided to simplify the development workflow to merge the different Git repos of…
Marco Franssen
In the last couple of years web applications technologies and frameworks went through a fast paced transformation and evolution. For all these evolutions there was coined a marketing term which (by coincidence) all end on …ive. So lets coin another one. In this article I'm going to explain you the basic concepts of all these principles which combined allow you to build an impressive web application. Responsive Web Design It started all back in (from top of my head) late 2010, with the idea of…
Marco Franssen
In this article I want to show you the way for running your multi container solution on Docker. Docker Compose is a tool for defining and running multiple Docker containers using a single command. With Compose, you use a docker-compose file to configure your applications services. Then, using a single command, you create and start all the services from your configuration. In a previous article I have shown you how to setup a Docker development environment on Windows or Mac. In case you don't ha…
Marco Franssen
Today you will learn how we can package our static html Angular app in a Docker container running Nginx. By packaging our app in a Docker container we will benefit from the fact that we will have some immutable infrastructure for our app. Immutability will give you many benefits when it boils down to maintaining a platform. Things that can not change state also can't lead to surprises in a later stage. Immutability is also well known in functional programming languages. I won't list all the adva…