# ubuntu architecture
dpkg --print-architecture
# ubuntu GUI
# https://freetome.tistory.com/517
# https://guiyomi.tistory.com/113
# https://hermeslog.tistory.com/498
# https://mungiyo.tistory.com/22
# https://learn.microsoft.com/ko-kr/azure/virtual-machines/linux/use-remote-desktop?tabs=azure-cli
# gui
sudo apt update && sudo apt -y upgrade
sudo apt install -y ubuntu-desktop
# xfce4 xrdp
sudo DEBIAN_FRONTEND=noninteractive apt -y install xfce4 # gdm3, lightdm (lightdm μ ν)
sudp apt install -y xfce4-session xfce-goodies
#area: 6, 69, display mamger: lightdm
sudo apt -y install xrdp
systecmctl enable xrdp
sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i 's/3389/13389/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/max_bpp=32/#max_bpp=32nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24nxserverbpp=128/g' /etc/xrdp/xrdp.ini
# xrdp λ³κ²½ νμΈ
vi /etc/xrdp/xrdp.ini
# xrdp νμ±ν
sudo /etc/init.d/xrdp start
sudo passwd [username]
sudo reboot
# xrdp μν νμΈ
service xrdp status
# μ€λ₯μ λ‘κ·Έ νμΈ
tail -f /var/log/syslog
# xrdp μ€λ₯ ν΄κ²°
sudo vi /etc/xrdp/startwm.sh
----
unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR
----
sudo systemctl restart xrdp
echo "xfce4-session" > ~/.xsession
cat ~/.xsession # μ μλ³κ²½μ¬λΆ νμΈ
# ubuntu is not in the sudoers file. This incident will be reported
sudo bash
chattr -i /etc/sudoers
chmod u+w /etc/sudoers
vi /etc/sudoers
---
ubuntu ALL=(ALL:ALL) ALL
---
# # Starting xrdp (via systemctl): xrdp.service Failed to connect to bus: Connection refused
# # https://superuser.com/questions/1628546/wsl2-run-xrdp-service-from-windows
# # https://askubuntu.com/questions/234856/unable-to-do-remote-desktop-using-xrdp
# wsl bash -c "sudo service xrdp start |cat"
# wsl sudo "/etc/init.d/xrdp start"
# sudo /etc/init.d/xrdp start
# # xrdp error
# # echo xfce4-session > ~/.xsession
# sudo update-alternatives --config x-session-manager
# novnc
lsb_release -cd ; getconf LONG_BIT ; hostname ; hostname -I
# https://www.youtube.com/watch?v=BWe2bnL0Nl8
Offcial Wesbite :https://novnc.com/info.html GitHub -https://github.com/novnc/noVNC
#
sudo apt install xfce4 xfce4-goodies tightvncserver novnc websockify python3-numpy build-essential net-tools curl git software-properties-common -y
vncserver
vncserver -kill :1
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
vim ~/.vnc/xstartup
----
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &
---
chmod +x ~/.vnc/xstartup
vncserver
vncpasswd [ StrongPassword ]
sudo adduser ubuntu
echo ubuntu ALL=\(root\) NOPASSWD:ALL > /etc/sudoers.d/ubuntu \
&& chmod 0440 /etc/sudoers.d/ubuntu
cd /etc/ssl ; openssl req -x509 -nodes -newkey rsa:2048 -keyout novnc.pem -out novnc.pem -days 365
chmod 644 novnc.pem
websockify -D --web=/usr/share/novnc/ --cert=/etc/ssl/novnc.pem 6080 localhost:5901
https://localhost:6080/vnc.html
# ubuntu korean
# https://shanepark.tistory.com/231
# νκΈ μΈμ΄ ν©
sudo apt-get install -y language-pack-ko
#Locale μ€μΉ
sudo locale-gen ko_KR.EUC-KR
#LANG μ€μ μ
λ°μ΄νΈ
sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX
#νκΈ μ
λ ₯κΈ° ibus μ€μΉ
sudo apt-get install -y ibus-hangul
# νκΈ ν°νΈ μ€μΉ #λλ κΈκΌ΄ μ€μΉ
sudo apt-get install -y fonts-nanum\*
#μλμ°μ μ μλ μΈκ°μ΄λ―λ‘, νμΌ κ΄λ¦¬ν΄ MC λ μ€μΉ
apt-get install mc
2 fcitx μ€μΉμμ
#μ€μΉ
sudo apt install fcitx fcitx-hangul fonts-noto-cjk dbus-x11
#μ
λ ₯κΈ° μ€μ -> fictx μ ν #μ²¨λΆ μ΄λ―Έμ§λ μ΄λ―Έ νκΈ μ€μ μ΄ λμ΄, νκΈλ‘ μΆλ ₯ μ€
im-config
#fcitx.sh μΆκ°
sudo vim /etc/profile.d/fcitx.sh
#!/bin/bash
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
#optional
fcitx-autostart &>/dev/null
#μλ λͺ
λ Ήμ΄ μ€νν΄μ νκΈ μ
λ ₯κΈ° μΆκ° λμ΄ μλ μ§ νμΈ
fcitx-config-gtk3
# wine
# https://itlearningcenter.tistory.com/entry/γUbuntu-2004-LTSγμΉ΄μΉ΄μ€ν‘-μ€μΉ
# sed -i 's#mirror.yuki.net.uk#ports.ubuntu.com#g' /etc/apt/sources.list;
sudo dpkg --add-architecture i386
sudo apt install -y wget
sudo mkdir -pm755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/winehq-archive.key https://dl.winehq.org/wine-builds/winehq.key
sudo wget -NP /etc/apt/sources.list.d/ https://dl.winehq.org/wine-builds/ubuntu/dists/jammy/winehq-jammy.sources
sudo apt-get update
sudo apt install -y --install-recommends winehq-stable
winecfg
# google cloud ubuntu 20.04
sudo apt update
sudo apt upgrade
# sudo apt install -y ubuntu-desktop
# sudo apt install slim
# sudo reboot
# sudo service slim start
# sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
# sudo apt-get install xrdp
# sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
# sudo sed -i 's/3389/3389/g' /etc/xrdp/xrdp.ini
# sudo sed -i 's/max_bpp=32/#max_bpp=32nmax_bpp=128/g' /etc/xrdp/xrdp.ini
# sudo sed -i 's/xserverbpp=24/#xserverbpp=24nxserverbpp=128/g' /etc/xrdp/xrdp.ini
# sudo /etc/init.d/xrdp start
sudo passwd oseongryu
sudo passwd ubuntu
sudo passwd root
sudo apt install net-tools
netstat -tnlp
# ubuntu chrome-remote-desktop
# https://medium.com/@selvamraju007/install-and-launch-ubuntu-22-04-desktop-on-google-cloud-1fba8c0f9585
wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb
sudo apt-get install --assume-yes ./chrome-remote-desktop_current_amd64.deb
sudo apt update && sudo apt upgrade
sudo apt install slim
sudo apt install ubuntu-desktop
sudo reboot
sudo service slim start
sudo passwd
# 3389 μ€μ
# sudo apt update
# sudo apt install xrdp -y
# sudo systemctl status xrdp
# sudo nano /etc/xrdp/xrdp.ini
# port=49952
# sudo systemctl restart xrdp
# sudo ufw status
# sudo ufw enable
# sudo ufw allow 49952/tcp
# sudo ufw reload
# ubuntu scp
scp -P 22 ~/.ssh/id_rsa gcp-root:/home/oseongryu/.ssh
scp -P 22 ~/.ssh/id_rsa.pub gcp-root:/home/oseongryu/.ssh
scp -P 22 ~/.ssh/drawing-app.war gcp-root:/home/oseongryu/.ssh
nohup java -jar /home/oseongryu/.ssh/drawing-app.war 1>/dev/null 2>&1
# ubuntu python setting
sudo apt-get update
sudo apt-get upgrade python3
sudo apt install python3-pip
sudo apt install python3-tk python3-dev
pip install selenium
pip install webdriver_manager
pip install pyautogui
# error The confidence keyword argument is only available if OpenCV is installed
pip install opencv-python
pip install -r requirements.txt
# https://stackoverflow.com/questions/73830524/attributeerror-module-lib-has-no-attribute-x509-v-flag-cb-issuer-check
sudo apt remove python3-pip
wget https://bootstrap.pypa.io/get-pip.py
sudo python3 get-pip.py
sudo reboot
pip install pyopenssl --upgrade
pip install python-xlib
sudo apt install python-tk
# ubuntu cliμμ pyautogui μ¬μ©λ°©λ²
# https://linuxhint.com/install-xvfb-ubuntu/
sudo apt install xvfb
sudo apt install scrot
sudo apt-get install fonts-indic
sudo apt-get install font-noto
sudo apt-get install fonts-noto-cjk
sudo timedatectl set-timezone Asia/Seoul
# ubuntu java gradle setting
sudo apt-get install openjdk-8-jdk
chmod +x gradlew
./gradlew bootWar
# ubuntu setting
# GUI
Ctrl + h
# chrome, chromium
# amd 64
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install ./google-chrome-stable_current_amd64.deb
/usr/bin/google-chrome-stable
# arm
sudo apt install chromium-browser
# chromium browser μ€νμλ κ²½μ° (no-sandbox μ΅μ
μΆκ°)
# https://answers.launchpad.net/ubuntu/+question/707831
vi /usr/bin/chromium-browser
---
exec /snap/bin/chromium "$@"
exec /snap/bin/chromium --no-sandbox "$@"
----
# old
vi /usr/share/applications/chromium-browser.desktop
# new
vi /var/lib/snapd/desktop/applications/chromium_chromium.desktop
---
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/chromium_chromium.desktop /snap/bin/chromium %U
Exec=env BAMF_DESKTOP_FILE_HINT=/var/lib/snapd/desktop/applications/chromium_chromium.desktop /snap/bin/chromium %U --no-sandbox
--service-sandbox-type=none
--service-sandbox-type=utility
---
# chrome update
cat /etc/apt/sources.list.d/google-chrome.list
# ### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# # You may comment out this entry, but any other modifications may be lost.
# deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
# ubuntu vscode (amd64)
sudo snap install --classic code
code --version
# sudo apt update
# wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -
# sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main"
# sudo apt install code
# https://code-designer.tistory.com/8
# https://code.visualstudio.com/
# cd Downloads
# sudo apt install ./code_1.84.2-1699528352_amd64.deb
# sudo apt remove code
# ubuntu vscode (arm)
# linux
# https://rottk.tistory.com/entry/VSCode-%EC%84%A4%EC%B9%98%EB%90%9C-VSCode-Portable-%EB%B2%84%EC%A0%84%EC%9C%BC%EB%A1%9C-%EC%A0%84%ED%99%98%ED%95%98%EA%B8%B0
cd ~
wget https://update.code.visualstudio.com/1.56.2/linux-x64/stable -O code-stable-x64-1620838810.tar.gz
tar -xvf code-stable-x64-1620838810.tar.gz
rm code-stable-x64-1620838810.tar.gz
# vscode portable mode
cd VSCode-linux-x64
mkdir data
# μ¬μ©μ μ€μ νμΌμ 볡μ¬ν©λλ€.
sudo cp ~/.config/Code ./data -r
mv data/Code ./data/user-data
# μ€μΉνλ νμ₯ν©μ 볡μ¬ν©λλ€.
sudo cp ~/.vscode/extensions/ ./data -r
# μμ±ν ν΄λμ μ¬μ©κΆνμ λΆμ¬ν©λλ€.
sudo chmod o+wx data
sudo chown -R osryu:google-sudoers data
# # μ¬μ©μ νκ²½ ν΄λ
# Windows %APPDATA%\Code
# macOS $HOME/Library/Application Support/Code
# Linux $HOME/.config/Code
# # νμ₯ν©μ΄ μ€μΉλ ν΄λμ μμΉλ λ€μκ³Ό κ°μ΅λλ€.
# Windows %USERPROFILE%\.vscode\extensions
# macOS ~/.vscode/extensions
# Linux ~/.vscode/extensions
# ubuntu docker
# https://stackoverflow.com/questions/40658095/how-to-open-ubuntu-gui-inside-a-docker-image
# https://shanepark.tistory.com/237
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# ubuntu docker-compose
# windows
# https://docs.docker.com/compose/install/standalone/
Start-BitsTransfer -Source "https://github.com/docker/compose/releases/download/v2.26.1/docker-compose-windows-x86_64.exe" -Destination $Env:ProgramFiles\Docker\docker-compose.exe
# wsl ubuntu
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo apt install -y docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version
# customize dock panel
sudo apt install dconf-editor
# https://linuxconfig.org/how-to-customize-dock-panel-on-ubuntu-20-04-focal-fossa-linux
gsettings set org.gnome.shell.extensions.dash-to-dock extend-height false
gsettings set org.gnome.shell.extensions.dash-to-dock dock-position BOTTOM
gsettings set org.gnome.shell.extensions.dash-to-dock transparency-mode FIXED
gsettings set org.gnome.shell.extensions.dash-to-dock dash-max-icon-size 64
gsettings set org.gnome.shell.extensions.dash-to-dock unity-backlit-items true
# ubuntu in mac
docker pull ubuntu:20.04
docker run -it -p 8089:8089 --privileged --restart=always --name my-ubuntu ubuntu:20.04
docker run -it -p 8081:8089 --platform linux/amd64 --privileged --restart=always --name my-ubuntu ubuntu:20.04
docker run -it -p 8082:8089 --privileged --restart=always --name my-ubuntu2 ubuntu:20.04
docker exec -it my-ubuntu bash
sudo docker cp /Users/oseongryu/.ssh/id_rsa my-ubuntu:/root/.ssh/
sudo docker cp /Users/oseongryu/.ssh/id_rsa.pub my-ubuntu:/root/.ssh/
apt install chromium-browser
apt-get install chromium-chromedriver
apt-get update
apt-get upgrade -y
apt-get install build-essential gdb
apt install chromium-shell
snap install chromium
systemctl unmask snapd.service
systemctl enable snapd.service
systemctl start snapd.service
/usr/lib/snapd/snapd &
apt-get update
apt-get upgrade python3
apt install python3-pip
apt install python3-tk python3-dev
pip install selenium
pip install webdriver_manager
pip install pyautogui
pip install opencv-python
apt remove python3-pip
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
reboot
pip install pyopenssl --upgrade
pip install python-xlib
# https://codetryout.com/google-chrome-following-packages-have-unmet-dependencies/
apt install wget
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
apt install ./google-chrome-stable_current_amd64.deb
apt install python-tk
apt install xvfb
apt install scrot
python3 /root/git/python-selenium/selenium/service.py 0
# ssl (with springboot)
# https://velog.io/@jiwon615/Spring-Boot%EC%97%90-Lets-Encrypt-SSL-%EC%A0%81%EC%9A%A9%EA%B8%B0
sudo apt-get install certbot
sudo certbot certonly --standalone
sudo certbot certonly --standalone --register-unsafely-without-email
# /etc/letsencrypt/live/λλ©μΈ/ (fullchain.pem, privkey.pen)
sudo openssl pkcs12 -export -in fullchain.pem -inkey privkey.pem -out keystore.p12 -name ttp -CAfile chain.pem -caname root
# # λ°°ν¬ ν root κΆνμΌλ‘ μ€ννλκ² μλλ©΄ RFC κ·μ½μ μνμ¬ 1024λ―Έλ§ ν¬νΈλ rootλ§ κ°λ₯νλ―λ‘ λ¦¬λ€μ΄λ μ
μ²λ¦¬ (nginx μ€μΉν 리λ€μ΄λ νΈλ₯Ό μ§ννλ λ°©μ μΆμ²)
# sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port 8089
# # λͺ©λ‘
# sudo iptables -t nat -L PREROUTING --line-numbers
# # iptables μμ λ²νΈ
# sudo iptables -t nat -D PREROUTING 3
# μΈμ¦μ μλκ°±μ
# Crontab 보기
sudo crontab -l
# Crontab νΈμ§
sudo crontab -e
0 2 1 * * /usr/bin/certbot renew
sudo certbot certificates
# μ¬κ°±μ ν
μ€νΈ
sudo certbot renew --dry-run
# μ¬κ°±μ μ§ν
sudo certbot renew
# ssl (with nginx)
# https://velog.io/@gudcks0305/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-Nginx%EB%A1%9C-Reverse-Proxy-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0
upstream backend {
server 127.0.0.1:8089;
}
# server {
# listen 80;
# server_name dnsname.co.kr;
# location / {
# proxy_pass http://backend/;
# }
# }
server {
listen 80;
server_name dnsname.co.kr;
if ($host = dnsname.co.kr) {
return 301 https://$host$request_uri;
}
return 404;
}
server {
listen 443 ssl;
server_name dnsname.co.kr;
ssl on;
ssl_certificate /etc/letsencrypt/live/dnsname.co.kr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/dnsname.co.kr/privkey.pem;
location / {
proxy_pass http://backend/;
proxy_set_header HOST $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
charset utf-8;
}
}
# temp
# apt install slim
# cat /etc/X11/default-display-manager
# apt install lightdm
# apt install ubuntu-desktop
# reboot
# # delete GUI diplay manager
# apt remove slim lxde
# # λΆνμν μ’
μμ±μ μΈ
# apt autoremove
# service slim start
# /etc/init.d/xrdp stop
# /etc/init.d/xrdp start
# [error] authentication is required to create a color managed device
# https://jkim83.tistory.com/142
sudo vi /etc/polkit-1/localauthority/50-local.d/color.pkla
[Allow colord for all users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=yes
ResultInactive=yes
ResultActive=yes
# magnet (ubuntu GUI)
sudo apt-get install comizconfig-settings-manager