Skip to content

Instantly share code, notes, and snippets.

@auriza
Last active March 4, 2020 06:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save auriza/9c11147b86c0a146b1e4c72bd822481f to your computer and use it in GitHub Desktop.
Save auriza/9c11147b86c0a146b1e4c72bd822481f to your computer and use it in GitHub Desktop.
#!/bin/bash
# Xubuntu 18.04 Lab Install
# <https://gist.github.com/auriza/9c11147b86c0a146b1e4c72bd822481f>
{ # BASE INSTALL ======================================================
# - Welcome : [Install Xubuntu]
# - Keyboard: [Continue]
# - Updates : uncheck any option, [Continue]
# - Install : choose "Erase disk and install Xubuntu", [Install Now], [Continue]
# - Where? : Jakarta, [Continue]
# - Who? : [Continue]
# - Name : Admin Lab
# - Hostname: lab1-01
# - Username: adminlab
# - Password: 1234
# - Confirm : 1234
# - [Restart Now]
## local repo ----------------------------------------------
sudo tee /etc/apt/sources.list << !
deb http://172.18.19.251/ubuntu bionic main restricted universe multiverse
deb http://172.18.19.251/ubuntu bionic-updates main restricted universe multiverse
deb http://172.18.19.251/ubuntu bionic-security main restricted universe multiverse
deb http://172.18.19.251/cran/ubuntu bionic-cran35/
deb http://172.18.19.251/mono/ubuntu bionic main
deb http://172.18.19.251/sublime apt/stable/
!
sudo apt-key adv --fetch-keys 'http://172.18.19.251/lab/cran.asc'
sudo apt-key adv --fetch-keys 'http://172.18.19.251/lab/mono.asc'
sudo apt-key adv --fetch-keys 'http://172.18.19.251/lab/sublime.asc'
## install ssh ---------------------------------------------
sudo apt update
sudo apt -y install ssh
## static IP -----------------------------------------------
net='172.18.16'
host="$(hostname | tr -d '[:alpha:]-')"
eth="$(ls /sys/class/net | grep '^en')"
mac="$(cat /sys/class/net/en*/address)"
sudo rm /etc/netplan/*.yaml
sudo tee /etc/netplan/static.yaml << !
network:
version: 2
ethernets:
$eth:
match:
macaddress: $mac
wakeonlan: true
addresses: [$net.$host/24]
gateway4 : $net.254
nameservers:
addresses: [172.17.5.14, 172.17.5.140]
!
sudo netplan apply
}
{ # APPLICATIONS ======================================================
## sudo for life! ------------------------------------------
sudo sed -i '/reset$/ s/$/, timestamp_timeout=-1/' /etc/sudoers
## user student --------------------------------------------
sudo adduser --add_extra_groups --disabled-login --gecos 'Student' student
echo 'student:student' | sudo chpasswd
sudo passwd student -n 2000
## basic apps ----------------------------------------------
sudo apt update
sudo apt -y upgrade
sudo ubuntu-drivers autoinstall
sudo apt -y install $(check-language-support) \
libreoffice tesseract-ocr-ara \
dia gimp inkscape graphviz blender \
mpv audacity vokoscreen libavcodec-extra \
filezilla xul-ext-ublock-origin \
curl w3m expect htop tmux itools redshift \
virtualbox
sudo apt -y purge mousepad parole gnome-sudoku gnome-mines sgt-puzzles sgt-launcher
sudo adduser student vboxusers
## cs apps -------------------------------------------------
echo 'wireshark-common wireshark-common/install-setuid boolean true' | sudo debconf-set-selections
sudo apt -y install geany build-essential git \
yasm gcc-multilib gdb ddd \
racket clisp chezscheme swi-prolog openjdk-8-jdk \
arduino codeblocks monodevelop \
logisim iverilog gtkwave fritzing fritzing-parts\
r-recommended weka octave \
libopencv-dev python-opencv python3-opencv opencv-doc \
freeglut3-dev libglew-dev libglfw3-dev \
postgresql pgadmin3 pgcli sqlite3 \
apache2 php php-pgsql php-sqlite3 \
qgis postgis libjs-openlayers \
texlive texlive-publishers texlive-science pandoc pandoc-citeproc \
nmap traceroute whois wireshark \
mpi-default-bin mpi-default-dev openmpi-doc \
python3-pycryptodome pass geany-plugin-pg \
clustalw clustalx clustalo velvet soapdenovo2 bowtie2 ugene samtools plink1.9 \
rustc golang erlang haskell-platform \
python3-tk virtualenv mongodb sublime-text \
pep8 cppcheck shellcheck manpages-posix-dev
sudo adduser student wireshark
sudo update-java-alternatives --set java-1.8.0-openjdk-amd64
## cs apps (non-repo) --------------------------------------
wget -crl 1 -nd -R 'index*,*gif' 'http://172.18.19.251/lab/'
sha256sum -c SHA256SUMS
chmod +x ./*.sh
### packettracer
sudo dpkg -i libpng12*.deb libicu52*.deb
mkdir pt
tar -xf PacketTracer*.tar.gz -C pt
cd pt
rm *txt *sh
sudo expect << !
set timeout -1
spawn sudo ./install
expect "Press the Enter key" {send "\r"}
expect "Do you accept" {send "Y\r"}
expect "Enter location" {send "\r"}
expect "Should we create" {send "\r"}
expect eof
!
cd ..
echo 'export PT7HOME=/opt/pt' | sudo tee /etc/profile.d/pt7.sh
sudo cp /opt/pt/bin/Cisco-PacketTracer.desktop /usr/share/applications/pt7.desktop
### rstudio
sudo dpkg -i rstudio*.deb
sudo apt -y install -f
### geoserver (java8)
sudo unzip -oq geoserver*.zip -d /opt
sudo mv /opt/geoserver-* /opt/geoserver
echo 'export GEOSERVER_HOME=/opt/geoserver' | sudo tee /etc/profile.d/geoserver.sh
sudo chown -R student /opt/geoserver/data_dir
sudo tee /usr/share/applications/geoserver.desktop << !
[Desktop Entry]
Type=Application
Name=GeoServer
Exec="/opt/geoserver/bin/startup.sh"
Icon=/opt/geoserver.png
Categories=Education;
Terminal=true
!
sudo mv geoserver.png /opt
### pycharm edu
sudo tar -xf pycharm*.gz -C /opt
sudo mv /opt/pycharm-* /opt/pycharm
sudo tee /usr/share/applications/jetbrains-pycharm-edu.desktop << !
[Desktop Entry]
Type=Application
Name=PyCharm Edu
Exec="/opt/pycharm/bin/pycharm.sh" %f
Icon=/opt/pycharm/bin/pycharm.png
Categories=Development;IDE;
StartupWMClass=jetbrains-pycharm-edu
!
### android studio
sudo unzip -oq android*.zip -d /opt
sudo tee /usr/share/applications/jetbrains-studio.desktop << !
[Desktop Entry]
Type=Application
Name=Android Studio
Exec="/opt/android-studio/bin/studio.sh" %f
Icon=/opt/android-studio/bin/studio.png
Categories=Development;IDE;
StartupWMClass=jetbrains-studio
!
### netbeans (java8)
sudo ./netbeans*.sh --silent --state state.xml
sudo sed -i '/jdkhome/ s_"/usr"_"/usr/lib/jvm/java-8-openjdk-amd64"_' /usr/local/netbeans-8.2/etc/netbeans.conf
### unity
sudo dpkg -i unity-editor*.deb
sudo apt -y install -f
### gravit
sudo unzip -oq Gravit*.zip -d /opt
sudo tee /usr/share/applications/gravit-designer.desktop << !
[Desktop Entry]
Type=Application
Name=Gravit Designer
Exec="/opt/GravitDesigner.AppImage" %U
Icon=appimagekit-gravit-designer
Categories=Graphics;
!
### pencil
sudo dpkg -i Pencil*.deb
### postman
sudo tar -xf Postman*.gz -C /opt
sudo tee /usr/share/applications/postman.desktop <<!
[Desktop Entry]
Type=Application
Name=Postman
Exec=/opt/Postman/Postman
Icon=/opt/Postman/app/resources/app/assets/icon.png
Categories=Development;
!
### megan (java 8)
sudo expect << !
set timeout -1
spawn sudo ./MEGAN_Community_unix_6_12_2.sh
expect "This will install" {send "\r"}
expect "I accept the agreement" {send "1\r"}
expect "Where should" {send "\r"}
expect "Which components" {send "\r"}
expect "Create symlinks" {send "\r"}
expect "Select the folder" {send "\r"}
expect "Check for updates" {send "\r"}
expect "Set maximum allowed memory" {send "\r"}
expect "Run MEGAN" {send "n\r"}
expect eof
!
### metasim
sudo expect << !
set timeout -1
spawn sudo ./MetaSim_unix_0_9_5.sh -c
expect "This will install" {send "\r"}
expect "I accept the agreement" {send "1\r"}
expect "Where should" {send "\r"}
expect "Which components" {send "\r"}
expect "Create symlinks" {send "\r"}
expect "Select the folder" {send "\r"}
expect eof
!
### tassel
sudo expect << !
spawn sudo ./TASSEL_5_unix.sh
expect "This will install" {send "\r"}
for {set x 0} {\$x < 21} {incr x} {
expect "\[Enter\]" {send "\r"}}
expect "I accept the agreement" {send "1\r"}
expect "Where should" {send "\r"}
expect "Create symlinks" {send "\r"}
expect "Select the folder" {send "\r"}
expect eof
!
### i-tasser
sudo tar -xf I-TASSER* -C /opt
### ubuntu server vdi
gunzip ubuntu-server.vdi.gz
sudo mkdir -p /opt/vm
sudo mv ubuntu-server.vdi /opt/vm
### dbeaver
sudo dpkg -i dbeaver-ce_5.3.3_amd64.deb
}
{ # SETTINGS ==========================================================
## postgres: student db ------------------------------------
sudo su postgres -c psql << !
CREATE USER student WITH PASSWORD 'student' CREATEDB;
CREATE DATABASE student OWNER student;
\c student;
CREATE EXTENSION adminpack;
CREATE EXTENSION postgis;
!
## apache: mod userdir rewrite ----------------------------
sudo a2enmod userdir rewrite
sudo sed -i '21,25 s/^/#/' /etc/apache2/mods-available/php7.2.conf
sudo systemctl restart apache2
## time and location --------------------------------------
sudo sed -i '/NTP/ s/#NTP=/NTP=172.18.19.251/' /etc/systemd/timesyncd.conf
echo 'export IPT_DATA="Bogor -6.56 106.73 7 1"' | sudo tee /etc/profile.d/ipraytime.sh
sudo sed -i '7 s/$/ -l -6.56:106.73 -g 0.8/' /usr/lib/systemd/user/redshift.service
sudo systemctl --user --global enable redshift.service
## wireless: off -------------------------------------------
sudo tee /etc/rc.local << !
#!/bin/sh -e
rfkill block all
exit 0
!
sudo chmod +x /etc/rc.local
## cron: restore wallpaper --------------------------------
sudo tee /etc/cron.hourly/wallpaper-restore << !
#!/bin/sh
sed -i '/last-image/ s_value=".*"_value="/usr/share/xfce4/backdrops/xubuntu-wallpaper.png"_' /home/student/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-desktop.xml
!
sudo chmod +x /etc/cron.hourly/wallpaper-restore
## security ------------------------------------------------
sudo sed -i '$ a HISTTIMEFORMAT="%F %T "' /etc/bash.bashrc
sudo sed -i '$ a DenyUsers student' /etc/ssh/sshd_config
# firefox: lock proxy setting ------------------------------
sudo tee /usr/lib/firefox/defaults/pref/local-settings.js <<!
pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");
!
sudo tee /usr/lib/firefox/mozilla.cfg <<!
//
lockPref("network.proxy.type", 5);
!
## menu: remove autostart, fix icon ------------------------
sudo sed -i '$ a Hidden=true' /etc/xdg/autostart/update-notifier.desktop
sudo sed -i '$ a Hidden=true' /etc/xdg/autostart/blueman.desktop
sudo sed -i '$ a Hidden=true' /etc/xdg/autostart/nm-applet.desktop
sudo sed -i '$ a Hidden=true' /usr/share/applications/gigolo.desktop
unzip -p /usr/share/java/weka.jar weka/gui/weka_icon_new_48.png | sudo tee /opt/weka.png > /dev/null
sudo sed -i '$ a Icon=/opt/weka.png' /usr/share/applications/weka.desktop
## xfce: favmenu, thunar, compositing, shortcut -----------
sudo sed -i '1 s/pidgin/geany/' /etc/xdg/xdg-xubuntu/xfce4/whiskermenu/defaults.rc
sudo sed -i '1 s/org.gnome.Software/virtualbox/' /etc/xdg/xdg-xubuntu/xfce4/whiskermenu/defaults.rc
sudo sed -i '$ i \ <property name="last-location-bar" type="string" value="ThunarLocationButtons"/>' /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
sudo sed -i '$ i \ <property name="misc-thumbnail-mode" type="string" value="THUNAR_THUMBNAIL_MODE_NEVER"/>' /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/thunar.xml
sudo sed -i '/use_compositing/ s/true/false/' /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfwm4.xml
sudo sed -i 's/parole/mpv/' /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
sudo sed -i 's/mousepad/geany/' /etc/xdg/xdg-xubuntu/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
## wallpaper ----------------------------------------------
sudo mv night.jpg /usr/share/xfce4/backdrops/
sudo rm /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
sudo ln -s /usr/share/xfce4/backdrops/night.jpg /usr/share/xfce4/backdrops/xubuntu-wallpaper.png
## font: input --------------------------------------------
sudo unzip -oq Input-Font.zip Input_Fonts/* -d /usr/local/share/fonts
sudo fc-cache -f
sudo sed -i '/FontName/ s/DejaVu Sans Mono 9/Input Mono Narrow Semi-Condensed 10/' /etc/xdg/xdg-xubuntu/xfce4/terminal/terminalrc
sudo tee /usr/share/geany/geany.conf << !
[geany]
editor_font=Input Mono Narrow Semi-Condensed 10
tagbar_font=Input Mono Narrow Semi-Condensed 8
msgwin_font=Input Mono Narrow Semi-Condensed 8
color_scheme=pygments.conf
[VTE]
font=Input Mono Narrow Semi-Condensed 8
!
## geany: colortheme, highlight ----------------------------
unzip -oq geany-themes-master.zip
sudo cp geany-themes-master/colorschemes/* /usr/share/geany/colorschemes/
sudo cp filetypes.* /usr/share/geany/filedefs
sudo sed -i 's/CM=python /CM=python3 /' /usr/share/geany/filedefs/filetypes.python
sudo sed -i '$ a set disassembly-flavor intel' /etc/gdb/gdbinit
## qgis: disassociate tiff and jpeg ------------------------
sudo sed -i 's|image/tiff;image/jpeg;image/jp2;||' /usr/share/applications/qgis.desktop
sudo sed -i '92,143 d' /usr/share/mime/packages/qgis.xml
sudo update-mime-database /usr/share/mime
}
{ # WINDOWS VM ========================================================
## extract vdi ---------------------------------------------
gunzip win*.vdi.gz
sudo mkdir -p /opt/vm
sudo mv win*.vdi /opt/vm
sudo chown root:vboxusers /opt/vm/win*.vdi
sudo chmod 755 /opt/vm/win*.vdi
## create win7 vm 32-bit -----------------------------------
sudo su - student
vboxmanage setproperty machinefolder ~/.vm
vboxmanage modifyhd /opt/vm/win7_lab.vdi --type immutable
vboxmanage createvm --name 'win7_lab' --ostype 'Windows7' --register
vboxmanage modifyvm 'win7_lab' --memory 1952 --vram 32 --clipboard bidirectional
vboxmanage modifyvm 'win7_lab' --audio pulse --audioout on --audiocontroller hda
vboxmanage modifyvm 'win7_lab' --description 'Update 2018-08; Office 2010, Visio 2010, Project 2010, Matlab R2008b; Firefox, 7zip, SumatraPDF, Geany, GIMP; XAMPP, JDK8, Netbeans, Justinmind, VisualParadigm'
vboxmanage storagectl 'win7_lab' --name 'SATA' --add sata --portcount 1
vboxmanage storageattach 'win7_lab' --storagectl 'SATA' --device 0 --port 0 --type hdd --mtype immutable --medium /opt/vm/win7_lab.vdi
vboxmanage sharedfolder add 'win7_lab' --name 'Public' --hostpath ~/Public/ --automount
vboxmanage setextradata 'win7_lab' 'GUI/Fullscreen' 'on'
vboxmanage setextradata 'win7_lab' 'GUI/MiniToolBarAlignment' 'Top'
## create win10 vm ------------------------------------------
vboxmanage modifyhd /opt/vm/win10_lab.vdi --type immutable
vboxmanage createvm --name 'win10_lab' --ostype 'Windows10_64' --register
vboxmanage modifyvm 'win10_lab' --cpus 2 --memory 1952 --vram 32 --clipboard bidirectional
vboxmanage modifyvm 'win10_lab' --audio pulse --audioout on --audiocontroller hda
vboxmanage modifyvm 'win10_lab' --description 'Update 2018-08, Office 2016; Firefox, SumatraPDF; Adobe XD'
vboxmanage storagectl 'win10_lab' --name 'SATA' --add sata --portcount 1
vboxmanage storageattach 'win10_lab' --storagectl 'SATA' --device 0 --port 0 --type hdd --mtype immutable --medium /opt/vm/win10_lab.vdi
vboxmanage sharedfolder add 'win10_lab' --name 'Public' --hostpath ~/Public/ --automount
vboxmanage setextradata 'win10_lab' 'GUI/Fullscreen' 'on'
vboxmanage setextradata 'win10_lab' 'GUI/MiniToolBarAlignment' 'Top'
vboxmanage setextradata global 'GUI/SuppressMessages' 'all'
logout
}
{ # MONITORING ========================================================
## epoptes client ------------------------------------------
sudo apt -y install epoptes-client
grep 'server$' /etc/hosts || sudo sed -i '$ a 172.18.16.251\tserver' /etc/hosts
sudo epoptes-client -c
sudo sed -i '$ i epoptes-client' /etc/rc.local
## autologin -----------------------------------------------
#sudo tee /etc/lightdm/lightdm.conf << !
#[Seat:*]
#autologin-user=student
#!
}
{ # MAINTENANCE =======================================================
sudo apt update
sudo apt -y upgrade
sudo apt -y autoremove --purge
sudo rm /etc/apt/sources.list.d/vscode.list
## restore /home/student -----------------------------------
sudo rm -r /home/student
sudo mkhomedir_helper student
## restore database ----------------------------------------
sudo su - postgres
psql -tc "SELECT 'DROP DATABASE \"' || datname || '\";' FROM pg_database, pg_user WHERE datdba = usesysid AND usename = 'student';" | psql
psql << !
DROP OWNED BY student CASCADE;
CREATE DATABASE student OWNER student;
\c student;
CREATE EXTENSION adminpack;
CREATE EXTENSION postgis;
!
logout
## reinstall geoserver -------------------------------------> see #133
## recreate win vm -----------------------------------------> see #348
}
{ # AFTERCLONE ========================================================
sudo editor /etc/hostname
sudo sed -i "s/lab.*/$(cat /etc/hostname)/" /etc/hosts
sudo editor /etc/netplan/static.yaml
sudo netplan apply
sudo epoptes-client -c
}
{ # WAKE ON LAN =======================================================
## BIOS Enable WOL
#~ - Lenovo: Boot -> F1
#~ - F9 (defaults)
#~ - Power: Automatic: Wake on LAN: Enabled
#~ - Security: Admin password: ******
#~ - F10 (save)
#~ - HP: Boot -> F10
#~ - F5 (defaults)
#~ - Power: WOL in S5: Enabled
#~ - Advanced: Supervisor password: ******
#~ - F10 (save)
}
## Firewall ------------------------------------------------
sudo ufw reset
sudo ufw default allow incoming
sudo ufw default deny outgoing
sudo ufw allow out to 172.16.0.0/12
sudo ufw allow out to 1.1.1.3
sudo ufw allow out to 74.125.130.95 comment 'newlms: fonts.googleapis.com'
sudo ufw allow out to 172.253.118.100 comment 'newlms: s.ytimg.com'
sudo ufw allow out to 172.253.118.101 comment 'newlms: s.ytimg.com'
sudo ufw allow out to 172.253.118.102 comment 'newlms: s.ytimg.com'
sudo ufw allow out to 172.253.118.113 comment 'newlms: s.ytimg.com'
sudo ufw allow out to 172.253.118.138 comment 'newlms: s.ytimg.com'
sudo ufw allow out to 172.253.118.139 comment 'newlms: s.ytimg.com'
sudo ufw allow out to 104.17.64.4 comment 'newlms: cdnjs.cloudflare.com'
sudo ufw allow out to 104.17.65.4 comment 'newlms: cdnjs.cloudflare.com'
sudo ufw enable
sudo ufw status verbose
sudo ufw disable
## Microsoft font ------------------------------------------
# sudo sed -i "$ a 172.18.19.251\tdownloads.sourceforge.net" /etc/hosts
# sudo debconf-set-selections <<< "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula boolean true"
# sudo apt -y install ubuntu-restricted-extras
# sudo sed -i "/sourceforge/ d" /etc/hosts
# SELF:
# - sudo apt install -y clusterssh remmina synaptic virtualbox-guest-addition-iso
# - sudo apt install -y --no-install-recommends smartmontools
# - sudo smartctl -H /dev/sda
# BUGS:
# - `monodevelop` missing from repo --> install from upstream
# - `netbeans` failed to start --> install 8.2 from upstream
# netbeans_jdkhome="/usr/lib/jvm/java-8-openjdk-amd64" /usr/local/netbeans-8.2/etc/netbeans.conf
# --> wget id.archive.ubuntu.com/ubuntu/pool/universe/e/eclipse/libequinox-osgi-java_3.8.1-10_all.deb
# dpkg -i libequinox-osgi-java_3.8.1-10_all.deb
# - `logisim` failed to start --> comment assistive in /etc/java-11-openjdk/accessibility.properties --> FIXED: openjdk-lts_10.0.2+13-1ubuntu0.18.04.2
# - `arduino` serial tty unaccessible --> update-java-alternatives --set java-1.8.0-openjdk-amd64
# - `epoptes-client` not start before user login --> workaround: start by using /etc/rc.local
# - wake-on-lan failed --> add match:macaddress: in netplan config
# - `timesync` to local server --> set NTP=addr in /etc/systemd/timesyncd.conf
# TODO:
# + bios: reset, vtx, wol, passwd
# + monitor: reset, brightness:25 (text mode), lock
{ # UPDATES ===========================================================
## 2019-01 merged ----------------------------------------------------
#sudo apt install pep8 cppcheck shellcheck manpages-posix-dev
#wget 172.18.19.251/lab/filetypes.{asm,markdown,verilog}
#wget 172.18.19.251/lab/dbeaver-ce_5.3.3_amd64.deb
#wget 172.18.19.251/lab/ubuntu-server.vdi.gz
#sudo mv filetypes.* /usr/share/geany/filedefs
#sudo dpkg -i dbeaver-ce_5.3.3_amd64.deb
#gunzip ubuntu-server.vdi.gz
#sudo mv ubuntu-server.vdi /opt/vm
## 2019-08 update ----------------------------------------------------
# pycharm
#wget 172.18.19.251/lab/pycharm-edu-2019.2.tar.gz
#sudo tar -xf pycharm-edu-2019.2.tar.gz -C /opt
#sudo rm -r /opt/pycharm
#sudo mv /opt/pycharm-* /opt/pycharm
# vscode
sudo sed -i '$ a deb [arch=amd64] http://172.18.19.251/vscode stable main' /etc/apt/sources.list
sudo apt-key adv --fetch-keys 'http://172.18.19.251/lab/microsoft.gpg'
sudo apt update
sudo apt install code
sudo rm /etc/apt/sources.list.d/vscode.list
# mono update error
#dpkg --status mono-runtime-common
sudo mv /etc/mono/config.dpkg-new /etc/mono/config
sudo apt install -f
## 2019-10 update ----------------------------------------------------
sudo apt install python3-pudb
sudo tee -a /usr/share/geany/filedefs/filetypes.python << !
EX_01_LB=_Debug
EX_01_CM=pudb3 "%f"
EX_01_WD=
!
## 2020-01 repo ---------------------------------------------------
sudo sed -i 's/12.13/19.251/' /etc/apt/sources.list
sudo sed -i '/NTP/ s/12.13/19.251/' /etc/systemd/timesyncd.conf
}
213,233 off
247 update
326,345 off
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment