VS Code on iPad Pro: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
 
(112 intermediate revisions by the same user not shown)
Line 1: Line 1:
{|
{|
| colspan="2" valign="top" |
|valign="top" |
<source lang="bash">
<source lang="bash">
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
Line 8: Line 8:
yarn global add code-server
yarn global add code-server
~/.yarn/bin/code-server
~/.yarn/bin/code-server
vim ~/.config/code-server/config.yaml
</source>
</source>
|-
| colspan="2" |
----
|-
| colspan="2" valign="top" |
vim ~/.config/code-server/config.yaml


|-
| valign="bottom" |
| colspan="2" |
----
|-
| valign="top" |
<source lang="properties">
<source lang="properties">
bind-addr: 127.0.0.1:8080
bind-addr: 127.0.0.1:8080
Line 28: Line 20:
</source>
</source>


| valign="top" |
| valign="bottom" |
<source lang="properties">
<source lang="properties">
bind-addr: 127.0.0.1:8080
bind-addr: 127.0.0.1:8080
Line 35: Line 27:
cert: false
cert: false
</source>
</source>
|}
|}


== Service ==
== Service ==
{|
{|
| colspan="2" valign="top" |
|valign="top" |
  sudo vim /etc/systemd/system/code-server.service
  sudo vim /etc/systemd/system/code-server.service
sudo systemctl disable code-server.service
sudo systemctl enable code-server.service
sudo systemctl status code-server.service
sudo systemctl start code-server.service
sudo systemctl stop code-server.service
'''blink » config » Hosts » New Host » SSH Config » New Host » Save'''
# Compression no
LocalForward 8080 127.0.0.1:8080
ExitOnForwardFailure yes
|valign="top" |
<source lang="ini">
<source lang="ini">
[Unit]
[Unit]
Line 58: Line 64:
WantedBy=multi-user.target
WantedBy=multi-user.target
</source>
</source>
sudo systemctl disable code-server.service
sudo systemctl enable code-server.service
sudo systemctl status code-server.service
sudo systemctl start code-server.service
sudo systemctl stop code-server.service
'''blink » config » Hosts » New Host » SSH Config » New Host » Save'''
# Compression no
LocalForward 8080 127.0.0.1:8080
ExitOnForwardFailure yes
|}
|}


Line 93: Line 88:
|valign="bottom"|
|valign="bottom"|
  ~/.yarn/bin/code-server\
  ~/.yarn/bin/code-server\
  --install-extension redhat.vscode-extension-red-hat-business-automation-bundle --force\
  --install-extension kie-group.vscode-extension-kogito-bundle --force\
   --install-extension k--kato.intellij-idea-keybindings --force\
   --install-extension k--kato.intellij-idea-keybindings --force\
   --install-extension felixfbecker.php-intellisense --force\
   --install-extension felixfbecker.php-intellisense --force\
Line 102: Line 99:
   --install-extension ms-python.python --force\
   --install-extension ms-python.python --force\
   --install-extension xdebug.php-pack --force\
   --install-extension xdebug.php-pack --force\
  --install-extension redhat.ansible --force\
   --install-extension rebornix.Ruby --force\
   --install-extension rebornix.Ruby --force\
   --install-extension redhat.java --force\
   --install-extension redhat.java --force\
Line 136: Line 134:
  sudo apt install mosh
  sudo apt install mosh
|}
|}
==Oh My Zsh==
<source lang="bash">
# https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
sudo apt install zsh timg fonts-powerline
zsh --version
echo ${SHELL}
sudo -s
chsh -s $(which zsh)
grep zsh /etc/passwd
chsh -s /bin/zsh root
chsh -s /bin/zsh ${USER}
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# vim ~/.zshrc
# ZSH_THEME="agnoster"
</source>
<source lang="xml">
mkdir -p ~/.config/fontconfig/conf.d
cat << \EOF >> ~/.config/fontconfig/conf.d/50-enable-terminess-powerline.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <selectfont>
        <acceptfont>
            <pattern>
                <patelt name="family">
                    <string>terminess powerline</string>
                </patelt>
            </pattern>
        </acceptfont>
    </selectfont>
</fontconfig>
EOF
fc-cache -vf
</source>


== Virtual Keyboard ==
== Virtual Keyboard ==
Line 284: Line 322:
deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main
deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main
EOF
EOF
sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install postgresql postgresql-contrib
</source>
</source>
<source lang="bash">
sudo su postgres
schema_name='ubuntu'
createuser ${schema_name}
createdb  ${schema_name}
cat << EOF | psql
GRANT ALL PRIVILEGES ON DATABASE ${schema_name} TO ${schema_name};
GRANT ALL PRIVILEGES ON DATABASE postgres TO ${schema_name};
ALTER USER ${schema_name} WITH SUPERUSER;
EOF
exit
psql
</source>
== PgAdmin 4 ==
<source lang="bash">
sudo apt install build-essential libssl-dev libffi-dev libgmp3-dev libpq-dev python-is-python3
sudo apt install python3-dev python3-pip python3-venv libapache2-mod-wsgi-py3
sudo python3 -m venv /opt/ide/pgadmin4
sudo su
source /opt/ide/pgadmin4/bin/activate
python -m pip install -U pip
python -m pip install  wheel
pip install pgadmin4
mkdir /var/log/pgadmin4
mkdir -p /var/lib/pgadmin4/{sessions,storage}
chown -R www-data:www-data /var/{lib,log}/pgadmin4
cat <<EOF >> /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/config_local.py
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
UPGRADE_CHECK_ENABLED = False
SERVER_MODE = True
EOF
cat <<EOF >> /etc/apache2/conf-available/pgadmin4.conf
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/opt/ide/pgadmin4
WSGIScriptAlias /pgadmin4 /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/pgAdmin4.wsgi
<Directory /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/>
    WSGIProcessGroup pgadmin
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
</Directory>
EOF
ln -s /etc/apache2/conf-available/pgadmin4.conf\
/etc/apache2/conf-enabled/pgadmin4.conf
pgadmin4
a2enmod wsgi
apachectl -t
systemctl restart apache2
##########################################<OR>##########################################
curl -fsSL  https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgadmin4.list
deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main
EOF
sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install apache2 pgadmin4-web
sudo /usr/pgadmin4/bin/setup-web.sh
</source>
==MariaDB Server==
<source lang="bash">
sudo apt install php7.4-fpm php7.4-common libapache2-mod-fcgid php7.4-cli
sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php7.4-fpm
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo apt install phpmyadmi
</source>
<source lang="sql">
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
-- mysqladmin -u root -p<old_password> password ''
FLUSH PRIVILEGES;
EXIT;
</source>
==Oracle Client==
<source lang="bash">
sudo apt install zip wget libaio1
ORA_LINK_PREFIX='https://download.oracle.com/otn_software/linux/instantclient';\
ORA_LIBS_MODULE='basic sqlplus sdk jdbc odbc';\
ORA_HOME_CLIENT='/opt/cli/oracle/oracle19c';\
ORA_LINK_SUFFIX='linux-arm64.zip';\
ORA_LINK_MIDFIX='instantclient';\
sudo mkdir -p ${ORA_HOME_CLIENT};\
for ORA_NAME_MIDFIX in ${ORA_LIBS_MODULE};do \
ORA_NAME_MODULE="${ORA_LINK_MIDFIX}-${ORA_NAME_MIDFIX}-${ORA_LINK_SUFFIX}";\
ORA_LINK_MODULE="${ORA_LINK_PREFIX}/${ORA_NAME_MODULE}";\
ORA_FILE_MODULE="${ORA_HOME_CLIENT}/${ORA_NAME_MODULE}";\
sudo wget -cq ${ORA_LINK_MODULE} -P ${ORA_HOME_CLIENT};\
sudo unzip -q ${ORA_FILE_MODULE} -d ${ORA_HOME_CLIENT};\
sudo rm  -rf ${ORA_FILE_MODULE}; done;\
sudo du    -h ${ORA_HOME_CLIENT}
</source>
<source lang="bash">
sudo su
export ORACLE_HOME='/opt/cli/oracle/oracle19c';\
export PATH="$ORACLE_HOME/instantclient_19_10:$PATH";\
export LD_LIBRARY_PATH="$ORACLE_HOME/instantclient_19_10"
cat << EOF > /etc/ld.so.conf.d/oracle-instantclient.conf
$ORACLE_HOME/instantclient_19_10
EOF
ldconfig
</source>
==Redis Server==
<source lang="bash">
sudo apt install redis-server
sudo vim /etc/redis/redis.conf
</source>
<source lang="ini" start="138" highlight="10" line>
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#  supervised no      - no supervision interaction
#  supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#  supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#  supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#      They do not enable continuous liveness pings back to your supervisor.
supervised systemd
</source>
<source lang="bash">
sudo mkdir /var/run/redis
sudo chown -R redis:redis /var/run/redis
sudo systemctl restart redis-server
sudo systemctl status  redis-server
###################<OR>###################
sudo vim /etc/systemd/system/redis.service
</source>
<source lang="ini" start="6" highlight="4,5" line>
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/bin/kill -s TERM $MAINPID
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
PIDFile=/run/redis/redis-server.pid
</source>
sudo systemctl daemon-reload
sudo systemctl restart redis-server
sudo systemctl status  redis-server


== Workspace ==
== Workspace ==
Line 300: Line 503:
  sudo apt install ca-certificates curl gnupg lsb-release
  sudo apt install ca-certificates curl gnupg lsb-release


<source lang="bash">
<source lang="json">
sudo su
sudo su
cat << \EOF >> /etc/docker/daemon.json
cat << \EOF >> /etc/docker/daemon.json
Line 337: Line 540:
  echo "net.bridge.bridge-nf-call-iptables=1" |\
  echo "net.bridge.bridge-nf-call-iptables=1" |\
   sudo tee -a /etc/sysctl.conf
   sudo tee -a /etc/sysctl.conf
sudo sysctl --system
  sudo sysctl -p
  sudo sysctl -p


Line 361: Line 565:
  kubeadm token create --print-join-command
  kubeadm token create --print-join-command
  kubectl get nodes
  kubectl get nodes
'''evil most for docker0 bridge'''
sudo apt remove netscript-2.4
sudo apt purge netscript-2.4
sudo apt autoremove


== Helm Chart==
== Helm Chart==
  sudo wget -c https://get.helm.sh/helm-v3.8.1-linux-arm64.tar.gz -P /opt/cli/
  sudo wget -c https://get.helm.sh/helm-v3.11.1-linux-arm64.tar.gz -P /opt/cli/
  sudo tar -xvzf /opt/cli/helm-v3.8.1-linux-arm64.tar.gz -C /opt/cli/
  sudo tar -xvzf /opt/cli/helm-v3.11.1-linux-arm64.tar.gz -C /opt/cli/
  sudo rm  -rf  /opt/cli/helm-v3.8.1-linux-arm64.tar.gz
  sudo rm  -rf  /opt/cli/helm-v3.11.1-linux-arm64.tar.gz


  sudo mv /opt/cli/linux-arm64 /opt/cli/helm-v3.8.1-linux-arm64
  sudo mv /opt/cli/linux-arm64 /opt/cli/helm-v3.11.1-linux-arm64
  sudo update-alternatives --install /usr/local/bin/helm helm\
  sudo update-alternatives --install /usr/local/bin/helm helm\
   /opt/cli/helm-v3.8.1-linux-arm64/helm 1983
   /opt/cli/helm-v3.11.1-linux-arm64/helm 1983
   
   
  sudo update-alternatives --install /usr/bin/helm helm\
  sudo update-alternatives --install /usr/bin/helm helm\
   /opt/cli/helm-v3.8.1-linux-arm64/helm 1983
   /opt/cli/helm-v3.11.1-linux-arm64/helm 1983


  helm repo add stable https://charts.helm.sh/stable
  helm repo add stable https://charts.helm.sh/stable
  helm search repo jenkins
  helm search repo jenkins
  helm version
  helm version
== Istio ==
sudo wget -c https://github.com/istio/istio/\
releases/download/1.17.2/istio-1.17.2-linux-arm64.tar.gz -P /opt/cli/
sudo tar -xvzf  /opt/cli/istio-1.17.2-linux-arm64.tar.gz -C /opt/cli/
sudo rm  -rf    /opt/cli/istio-1.17.2-linux-arm64.tar.gz
sudo update-alternatives --install /usr/local/bin/istioctl istioctl\
  /opt/cli/istio-1.17.2/bin/istioctl 1983
 
sudo update-alternatives --install /usr/bin/istioctl istioctl\
  /opt/cli/istio-1.17.2/bin/istioctl 1983
sudo chmod 755 -R\
  /opt/cli/istio-1.17.2/
istioctl x precheck


== Knowledge ==
== Knowledge ==
cat /proc/cgroups
sudo apt install tree
  sudo apt install upx-ucl
  sudo apt install upx-ucl
sudo apt install gtkhash
  dpkg --print-architecture
  dpkg --print-architecture


Line 386: Line 615:
  apt-cache madison kubectl
  apt-cache madison kubectl
  apt-cache madison docker-ce
  apt-cache madison docker-ce
journalctl -fu docker
journalctl -u kubelet
sudo rm -rf /root/.kube
rm -rf /home/${USER}/.kube
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/kubelet
sudo rm /etc/containerd/config.toml
sudo systemctl daemon-reload
systemctl restart containerd
sudo systemctl restart docker
sudo systemctl enable  docker
sudo systemctl enable  --now ssh
sudo systemctl disable --now ssh
<source lang="bash">
# sudo ifup docker0
# sudo ifdown docker0
# sudo apt install netscript
# sudo apt install cgroup-tools
sudo systemctl restart NetworkManager
sudo systemctl restart systemd-resolved
</source>
sudo snap refresh --list
sudo snap refresh firefox
sudo snap install figma-linux
sudo snap install dotnet-sdk --classic
sudo snap install powershell --classic


  sudo update-alternatives --list java
  sudo update-alternatives --list java
Line 396: Line 656:
  sudo systemctl daemon-reload
  sudo systemctl daemon-reload
  sudo apt purge docker-ce kubelet kubeadm kubectl
  sudo apt purge docker-ce kubelet kubeadm kubectl
sudo apt autoremove docker-ce kubelet kubeadm kubectl
  sudo apt-mark unhold docker-ce kubelet kubeadm kubectl
  sudo apt-mark unhold docker-ce kubelet kubeadm kubectl


Line 404: Line 665:
  '''add the new key(s) to known_hosts'''
  '''add the new key(s) to known_hosts'''
  ssh-keyscan -H dev.chorke.org >> ~/.ssh/known_hosts
  ssh-keyscan -H dev.chorke.org >> ~/.ssh/known_hosts
'''Enter'''  +  '''~'''  +  '''.''' » '''exit an ssh session'''
   
   
  '''remove the old key(s) from known_hosts'''
  '''remove the old key(s) from known_hosts'''
  ssh-keygen -R dev.chorke.org
  ssh-keygen -R dev.chorke.org
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false


== References ==
== References ==
Line 475: Line 740:


| valign="top" |
| valign="top" |
* [[Academia JavaEE Workspace in Raspbian]]
* [[Academia JavaEE Workspace in Ubuntu]]
* [https://software.opensuse.org/package/postgresql-contrib PostgreSQL Contributed Extensions]
* [https://superuser.com/questions/348553/  Linux colorized <code>top » htop</code>]
* [https://elinux.org/RPiconfig Raspberry Pi 4 <code>config.txt</code>]
* [https://elinux.org/RPiconfig Raspberry Pi 4 <code>config.txt</code>]
* [https://github.com/techcraftco/rpi-usb-gadget/releases/ RPI USB Gadget Releases]
* [https://www.raspberrypi.com/documentation/computers/configuration.html The <code>raspi-config</code> Tool]
* [https://www.raspberrypi.com/documentation/computers/configuration.html The <code>raspi-config</code> Tool]
* [https://www.hardill.me.uk/wordpress/2019/11/02/pi4-usb-c-gadget/ Pi4 USB-C Gadget]
* [https://github.com/techcraftco/rpi-usb-gadget RPI USB Gadget]
* [[PostgreSQL]]
* [[PostgreSQL]]
|-
| colspan="3" |
----
|-
| valign="top" |
* [https://computingforgeeks.com/deploy-kubernetes-cluster-on-ubuntu-with-kubeadm/ Install Kubernetes Cluster on Ubuntu 20.04]
* [https://stackoverflow.com/questions/51006002/ IntelliJ Terminal Bug with Oh My Zsh]
* [https://github.com/graalvm/mandrel/releases GraalVM Mandrel Releases]
* [https://stackoverflow.com/questions/40082608/ Delete interface <code>docker0</code>]
* [https://infolinux.com/2019/02/19/install-unijoy-in-linux/ Install Unijoy on Linux]
* [https://github.com/agnoster/agnoster-zsh-theme Agnoster zsh-theme]
* [https://stackoverflow.com/questions/28981112/ Close a frozen SSH]
* [https://github.com/powerline/fonts Powerline fonts]
* [https://github.com/ohmyzsh/ohmyzsh Oh My Zsh]
* [[Minikube]]
| valign="top" |
* [https://unix.stackexchange.com/questions/200239/ SSH Sessions Prevent From Freezing]
* [https://github.com/oracle/docker-images/tree/main/OracleLinuxDevelopers Oracle Linux Developer Images]
* [[Oracle12c Instant Client Config]]
* [[Docker Run Oracle DB 21c XE]]
* [[Docker Run Oracle DB 18c XE]]
* [[Qt Creator]]
* [[Terraform]]
* [[Symfony]]
* [[Ansible]]
* [[Redis]]
| valign="top" |
* [https://unix.stackexchange.com/questions/8656/ <code>/usr/bin</code> vs <code>/usr/local/bin</code> on Linux]
* [[Linux Virtual Display for iPad Pro]]
* [https://www.avast.com/c-thunderbolt-vs-usb-c Thunderbolt vs. USB-C]
* [https://infolinux.com/2019/02/19/install-unijoy-in-linux/ Install Unijoy on Linux]
* [https://github.com/balena-io/etcher Install Balena Etcher]
* [https://marketplace.visualstudio.com/items?itemName=Tim-Koehler.helm-intellisense&ssr=false Helm Intellisense]


|}
|}

Latest revision as of 20:28, 28 July 2023

curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo npm -g install yarn

yarn global add code-server
~/.yarn/bin/code-server

vim ~/.config/code-server/config.yaml
bind-addr: 127.0.0.1:8080
auth: none
password: academia
cert: false
bind-addr: 127.0.0.1:8080
auth: password
password: academia
cert: false

Service

sudo vim /etc/systemd/system/code-server.service


sudo systemctl disable code-server.service
sudo systemctl enable code-server.service
sudo systemctl status code-server.service
sudo systemctl start code-server.service
sudo systemctl stop code-server.service


blink » config » Hosts » New Host » SSH Config » New Host » Save
# Compression no
LocalForward 8080 127.0.0.1:8080
ExitOnForwardFailure yes
[Unit]
Description=code-server
After=network.target

[Service]
User=ubuntu
Group=ubuntu

WorkingDirectory=/home/ubuntu
Environment="PATH=/usr/bin"
ExecStart=/home/ubuntu/.yarn/bin/code-server

[Install]
WantedBy=multi-user.target

Extension

~/.yarn/bin/code-server\
 --install-extension ms-kubernetes-tools.vscode-kubernetes-tools --force\
 --install-extension msjsdiag.vscode-react-native --force\
 --install-extension ms-azuretools.vscode-docker --force\
 --install-extension PKief.material-icon-theme --force\
 --install-extension ckolkman.vscode-postgres --force\
 --install-extension esbenp.prettier-vscode --force\
 --install-extension ritwickdey.LiveServer --force\
 --install-extension ms-python.python --force

~/.yarn/bin/code-server\
 --install-extension ms-vscode-remote.vscode-remote-extensionpack --force\
 --install-extension ms-vscode.Theme-MarkdownKit --force\
 --install-extension ms-dotnettools.csharp --force\
 --install-extension ms-vscode.cpptools --force\
 --install-extension xdebug.php-pack --force
~/.yarn/bin/code-server\
 --install-extension redhat.vscode-extension-red-hat-business-automation-bundle --force\
 --install-extension kie-group.vscode-extension-kogito-bundle --force\
 --install-extension k--kato.intellij-idea-keybindings --force\
 --install-extension felixfbecker.php-intellisense --force\
 --install-extension Pivotal.vscode-boot-dev-pack --force\
 --install-extension vscjava.vscode-java-pack --force\
 --install-extension ms-vscode.powershell --force\
 --install-extension Dart-Code.dart-code --force\
 --install-extension mrmlnc.vscode-scss --force\
 --install-extension ms-python.python --force\
 --install-extension xdebug.php-pack --force\
 --install-extension redhat.ansible --force\
 --install-extension rebornix.Ruby --force\
 --install-extension redhat.java --force\
 --install-extension golang.Go --force

scp ~/Downloads/*.vsix [email protected]:~/.chorke/academia/var/download
:'
[email protected]              100%  132MB     2.4MB/s   00:54 
ms-vscode-remote.vscode-remote-extensionpack-0.21.0.vsix   100%   58KB     3.8MB/s   00:00
ms-vscode-remote.remote-ssh-0.79.2022040616.vsix           100%  319KB     3.6MB/s   00:00
[email protected]                  100%   61MB     4.2MB/s   00:14
ms-vscode.Theme-MarkdownKit-0.1.4.vsix                     100%   64KB     4.1MB/s   00:00
swellaby.rust-pack-0.2.29.vsix                             100%   9251   152.1KB/s   00:00
xdebug.php-pack-1.0.3.vsix                                 100%   37KB     1.9MB/s   00:00
'
⇧ + ⌘ + P » vsix » Enter

Mobile Shell

sudo apt update
sudo apt list --upgradable
sudo apt upgrade
sudo apt install mosh

Oh My Zsh

# https://github.com/ohmyzsh/ohmyzsh/wiki/Themes#agnoster
sudo apt install zsh timg fonts-powerline
zsh --version
echo ${SHELL}

sudo -s
chsh -s $(which zsh)
grep zsh /etc/passwd

chsh -s /bin/zsh root
chsh -s /bin/zsh ${USER}
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# vim ~/.zshrc
# ZSH_THEME="agnoster"
mkdir -p ~/.config/fontconfig/conf.d
cat << \EOF >> ~/.config/fontconfig/conf.d/50-enable-terminess-powerline.conf
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <selectfont>
        <acceptfont>
            <pattern>
                <patelt name="family">
                    <string>terminess powerline</string>
                </patelt>
            </pattern>
        </acceptfont>
    </selectfont>
</fontconfig>
EOF

fc-cache -vf

Virtual Keyboard

iPad Pro » Settings » General » Keyboard » Auto-Correction » Disable
iPad Pro » Settings » General » Keyboard » Shortcuts       » Disable

Java GraalVM

export ACADEMIA_HOME="$HOME/.chorke/academia"
sudo mkdir -p /opt/cli

mkdir -p $ACADEMIA_HOME/etc/env/
cat << \EOF >> $ACADEMIA_HOME/etc/env/system.sh
# chorke academia env
export ACADEMIA_HOME="$HOME/.chorke/academia"
export ACADEMIA_DEV="$ACADEMIA_HOME/dev"

EOF
cat << \EOF >> $HOME/.bashrc

# chorke academia env
if [ -f "$HOME/.chorke/academia/etc/env/system.sh" ]; then
    source $HOME/.chorke/academia/etc/env/system.sh
fi
EOF

sudo wget -c https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/\
graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz -P /opt/cli/

sudo tar -xvzf /opt/cli/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz -C /opt/cli/
sudo rm  -rf   /opt/cli/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz
export GRAALVM_HOME='/opt/cli/graalvm-ce-java17-22.0.0.2'

cat << \EOF >> $ACADEMIA_HOME/etc/env/system.sh
# chorke academia sys
export GRAALVM_HOME='/opt/cli/graalvm-ce-java17-22.0.0.2'

EOF

update-alternatives --query native-image
update-alternatives --query jconsole
update-alternatives --query jshell
update-alternatives --query javac
update-alternatives --query java
update-alternatives --query jdb
update-alternatives --query jps
update-alternatives --query gu
update-alternatives --query js

sudo update-alternatives --install /usr/bin/jconsole jconsole\
 $GRAALVM_HOME/bin/jconsole 1983

sudo update-alternatives --install /usr/bin/jshell jshell\
 $GRAALVM_HOME/bin/jshell 1983

sudo update-alternatives --install /usr/bin/javac javac\
 $GRAALVM_HOME/bin/javac 1983

sudo update-alternatives --install /usr/bin/java java\
 $GRAALVM_HOME/bin/java 1983
sudo update-alternatives --install /usr/bin/jdb jdb\
 $GRAALVM_HOME/bin/jdb 1983

sudo update-alternatives --install /usr/bin/jps jps\
 $GRAALVM_HOME/bin/jps 1983

sudo update-alternatives --install /usr/bin/js js\
 $GRAALVM_HOME/bin/js 1983

sudo update-alternatives --install /usr/local/bin/gu gu\
 $GRAALVM_HOME/bin/gu 1983

sudo gu install native-image
sudo update-alternatives --install\
 /usr/bin/native-image native-image\
 $GRAALVM_HOME/bin/native-image 1983

native-image --version
sudo gu --version
javac -version
java -version

Ant & Maven

sudo wget -c https://archive.apache.org/dist/ant/binaries/\
apache-ant-1.10.12-bin.tar.gz -P /opt/cli/

sudo tar -xvzf  /opt/cli/apache-ant-1.10.12-bin.tar.gz -C /opt/cli/
sudo rm -rf     /opt/cli/apache-ant-1.10.12-bin.tar.gz
export ANT_HOME=/opt/cli/apache-ant-1.10.12

sudo update-alternatives --install /usr/bin/ant ant\
 $ANT_HOME/bin/ant 1983
sudo wget -c https://archive.apache.org/dist/maven/maven-3/3.8.5/\
binaries/apache-maven-3.8.5-bin.tar.gz -P /opt/cli/

sudo tar -xvzf    /opt/cli/apache-maven-3.8.5-bin.tar.gz -C /opt/cli/
sudo rm -rf       /opt/cli/apache-maven-3.8.5-bin.tar.gz
export MAVEN_HOME=/opt/cli/apache-maven-3.8.5

sudo update-alternatives --install /usr/bin/mvn mvn\
 $MAVEN_HOME/bin/mvn 1983

PostgreSQL

curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgdg.list
deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main
EOF

sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install postgresql postgresql-contrib
sudo su postgres
schema_name='ubuntu'
createuser ${schema_name}
createdb   ${schema_name}

cat << EOF | psql
GRANT ALL PRIVILEGES ON DATABASE ${schema_name} TO ${schema_name};
GRANT ALL PRIVILEGES ON DATABASE postgres TO ${schema_name};
ALTER USER ${schema_name} WITH SUPERUSER;
EOF

exit
psql

PgAdmin 4

sudo apt install build-essential libssl-dev libffi-dev libgmp3-dev libpq-dev python-is-python3
sudo apt install python3-dev python3-pip python3-venv libapache2-mod-wsgi-py3
sudo python3 -m venv /opt/ide/pgadmin4

sudo su
source /opt/ide/pgadmin4/bin/activate
python -m pip install -U pip
python -m pip install  wheel
pip install pgadmin4

mkdir /var/log/pgadmin4
mkdir -p /var/lib/pgadmin4/{sessions,storage}
chown -R www-data:www-data /var/{lib,log}/pgadmin4

cat <<EOF >> /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/config_local.py
SESSION_DB_PATH = '/var/lib/pgadmin4/sessions'
SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db'
LOG_FILE = '/var/log/pgadmin4/pgadmin4.log'
STORAGE_DIR = '/var/lib/pgadmin4/storage'
UPGRADE_CHECK_ENABLED = False
SERVER_MODE = True
EOF

cat <<EOF >> /etc/apache2/conf-available/pgadmin4.conf
WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/opt/ide/pgadmin4
WSGIScriptAlias /pgadmin4 /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/pgAdmin4.wsgi

<Directory /opt/ide/pgadmin4/lib/python3.8/site-packages/pgadmin4/>
    WSGIProcessGroup pgadmin
    WSGIApplicationGroup %{GLOBAL}
    Require all granted
</Directory>
EOF

ln -s /etc/apache2/conf-available/pgadmin4.conf\
 /etc/apache2/conf-enabled/pgadmin4.conf

pgadmin4
a2enmod wsgi
apachectl -t
systemctl restart apache2

##########################################<OR>##########################################
curl -fsSL  https://www.pgadmin.org/static/packages_pgadmin_org.pub | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/pgadmin4.list
deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main
EOF

sudo apt update && sudo apt list --upgradable && sudo apt upgrade
sudo apt install apache2 pgadmin4-web
sudo /usr/pgadmin4/bin/setup-web.sh

MariaDB Server

sudo apt install php7.4-fpm php7.4-common libapache2-mod-fcgid php7.4-cli
sudo a2enmod proxy_fcgi setenvif && sudo a2enconf php7.4-fpm
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo apt install phpmyadmi
ALTER USER 'root'@'localhost' IDENTIFIED BY '<new_password>';
-- mysqladmin -u root -p<old_password> password ''
FLUSH PRIVILEGES;
EXIT;

Oracle Client

sudo apt install zip wget libaio1

ORA_LINK_PREFIX='https://download.oracle.com/otn_software/linux/instantclient';\
ORA_LIBS_MODULE='basic sqlplus sdk jdbc odbc';\
ORA_HOME_CLIENT='/opt/cli/oracle/oracle19c';\
ORA_LINK_SUFFIX='linux-arm64.zip';\
ORA_LINK_MIDFIX='instantclient';\
sudo mkdir -p ${ORA_HOME_CLIENT};\
for ORA_NAME_MIDFIX in ${ORA_LIBS_MODULE};do \
ORA_NAME_MODULE="${ORA_LINK_MIDFIX}-${ORA_NAME_MIDFIX}-${ORA_LINK_SUFFIX}";\
ORA_LINK_MODULE="${ORA_LINK_PREFIX}/${ORA_NAME_MODULE}";\
ORA_FILE_MODULE="${ORA_HOME_CLIENT}/${ORA_NAME_MODULE}";\
sudo wget -cq ${ORA_LINK_MODULE} -P ${ORA_HOME_CLIENT};\
sudo unzip -q ${ORA_FILE_MODULE} -d ${ORA_HOME_CLIENT};\
sudo rm   -rf ${ORA_FILE_MODULE}; done;\
sudo du    -h ${ORA_HOME_CLIENT}
sudo su
export ORACLE_HOME='/opt/cli/oracle/oracle19c';\
export PATH="$ORACLE_HOME/instantclient_19_10:$PATH";\
export LD_LIBRARY_PATH="$ORACLE_HOME/instantclient_19_10"

cat << EOF > /etc/ld.so.conf.d/oracle-instantclient.conf
$ORACLE_HOME/instantclient_19_10
EOF

ldconfig

Redis Server

sudo apt install redis-server
sudo vim /etc/redis/redis.conf
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
#   supervised no      - no supervision interaction
#   supervised upstart - signal upstart by putting Redis into SIGSTOP mode
#   supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
#   supervised auto    - detect upstart or systemd method based on
#                        UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
#       They do not enable continuous liveness pings back to your supervisor.
supervised systemd
sudo mkdir /var/run/redis
sudo chown -R redis:redis /var/run/redis
sudo systemctl restart redis-server
sudo systemctl status  redis-server

###################<OR>###################
sudo vim /etc/systemd/system/redis.service
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/bin/kill -s TERM $MAINPID
ExecStartPost=/bin/sh -c "echo $MAINPID > /var/run/redis/redis.pid"
PIDFile=/run/redis/redis-server.pid
sudo systemctl daemon-reload
sudo systemctl restart redis-server
sudo systemctl status  redis-server

Workspace

sudo mkdir -p /opt/dev/academia
sudo chown $(id -u):$(id -g) /opt/dev/academia -R
sudo mkdir -p /opt/dev/software
sudo chown $(id -u):$(id -g) /opt/dev/software -R

Kubernetes

sudo apt remove docker docker-engine docker.io containerd runc
sudo apt install ca-certificates curl gnupg lsb-release
sudo su
cat << \EOF >> /etc/docker/daemon.json
{
    "exec-opts": [
        "native.cgroupdriver=systemd"
    ],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m"
    },
    "storage-driver": "overlay2"
}
EOF
exit
sudo vim /boot/firmware/cmdline.txt
net.ifnames=0 dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=LABEL=writable rootfstype=ext4 elevator=deadline rootwait fixrtc cgroup_enable=cpuset cgroup_enable=memory cgroup_memory=1 swapaccount=1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
curl    https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt update && sudo apt install -y apt-transport-https curl
sudo apt install -y docker-ce=5:20.10.14~3-0~ubuntu-focal\
 kubelet=1.23.5-00 kubeadm=1.23.5-00 kubectl=1.23.5-00
sudo apt-mark hold docker-ce kubelet kubeadm kubectl
sudo apt install docker-compose
echo "net.bridge.bridge-nf-call-iptables=1" |\
 sudo tee -a /etc/sysctl.conf
sudo sysctl --system
sudo sysctl -p
sudo kubeadm init --pod-network-cidr=10.21.0.0/16
docker config
sudo usermod -aG docker $USER
newgrp docker

mkdir -p $HOME/.docker
sudo chown $(id -u):$(id -g) $HOME/.docker -R
sudo chmod g+rwx $HOME/.docker -R
kube config
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
network overlay
kubectl apply -f\
 https://docs.projectcalico.org/v3.14/manifests/calico.yaml
join worker nodes
kubeadm token create --print-join-command
kubectl get nodes
evil most for docker0 bridge
sudo apt remove netscript-2.4
sudo apt purge netscript-2.4
sudo apt autoremove

Helm Chart

sudo wget -c https://get.helm.sh/helm-v3.11.1-linux-arm64.tar.gz -P /opt/cli/
sudo tar -xvzf /opt/cli/helm-v3.11.1-linux-arm64.tar.gz -C /opt/cli/
sudo rm  -rf   /opt/cli/helm-v3.11.1-linux-arm64.tar.gz
sudo mv /opt/cli/linux-arm64 /opt/cli/helm-v3.11.1-linux-arm64
sudo update-alternatives --install /usr/local/bin/helm helm\
 /opt/cli/helm-v3.11.1-linux-arm64/helm 1983

sudo update-alternatives --install /usr/bin/helm helm\
 /opt/cli/helm-v3.11.1-linux-arm64/helm 1983
helm repo add stable https://charts.helm.sh/stable
helm search repo jenkins
helm version

Istio

sudo wget -c https://github.com/istio/istio/\
releases/download/1.17.2/istio-1.17.2-linux-arm64.tar.gz -P /opt/cli/
sudo tar -xvzf  /opt/cli/istio-1.17.2-linux-arm64.tar.gz -C /opt/cli/
sudo rm  -rf    /opt/cli/istio-1.17.2-linux-arm64.tar.gz

sudo update-alternatives --install /usr/local/bin/istioctl istioctl\
 /opt/cli/istio-1.17.2/bin/istioctl 1983
 
sudo update-alternatives --install /usr/bin/istioctl istioctl\
 /opt/cli/istio-1.17.2/bin/istioctl 1983

sudo chmod 755 -R\
 /opt/cli/istio-1.17.2/

istioctl x precheck

Knowledge

cat /proc/cgroups
sudo apt install tree
sudo apt install upx-ucl
sudo apt install gtkhash
dpkg --print-architecture
apt-cache madison kubelet
apt-cache madison kubeadm
apt-cache madison kubectl
apt-cache madison docker-ce
journalctl -fu docker
journalctl -u kubelet
sudo rm -rf /root/.kube
rm -rf /home/${USER}/.kube
sudo rm -rf /etc/kubernetes
sudo rm -rf /var/lib/kubelet
sudo rm /etc/containerd/config.toml
sudo systemctl daemon-reload 
systemctl restart containerd
sudo systemctl restart docker
sudo systemctl enable  docker
sudo systemctl enable  --now ssh
sudo systemctl disable --now ssh
# sudo ifup docker0
# sudo ifdown docker0
# sudo apt install netscript
# sudo apt install cgroup-tools
sudo systemctl restart NetworkManager
sudo systemctl restart systemd-resolved
sudo snap refresh --list
sudo snap refresh firefox
sudo snap install figma-linux
sudo snap install dotnet-sdk --classic
sudo snap install powershell --classic
sudo update-alternatives --list java
sudo update-alternatives --query java
sudo update-alternatives --remove-all java
sudo update-alternatives --remove java /usr/bin/java
rm -rf /Volumes/NO\ NAME/{.Spotlight-V100,.fseventsd}
sudo systemctl daemon-reload
sudo apt purge docker-ce kubelet kubeadm kubectl
sudo apt autoremove docker-ce kubelet kubeadm kubectl
sudo apt-mark unhold docker-ce kubelet kubeadm kubectl
sudo npm install -g --unsafe-perm=true --allow-root
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
curl -fsSL https://rpm.nodesource.com/setup_14.x | sudo bash -
add the new key(s) to known_hosts
ssh-keyscan -H dev.chorke.org >> ~/.ssh/known_hosts
Enter   +   ~   +   . » exit an ssh session

remove the old key(s) from known_hosts
ssh-keygen -R dev.chorke.org
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts true
gsettings set org.gnome.shell.extensions.dash-to-dock show-mounts false

References