Skip to content

ubuntu architecture

bash
dpkg --print-architecture

ubuntu GUI

bash
# 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

bash
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

bash
# 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

bash
# 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

bash
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

bash
# 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

bash
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

bash
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

bash
sudo apt-get install openjdk-8-jdk
chmod +x gradlew
./gradlew bootWar

ubuntu setting

bash
# GUI
Ctrl + h

chrome, chromium

bash
# 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

bash
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)

bash
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)

bash
# 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

bash
# 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

ps1
# 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

bash
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

bash
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)

bash
# 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)

bash
# 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

bash
# 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

sh
# 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