하드를 파티션을 삭제했다가 다시 만들었을 때 기존에 설정했던 디렉토리로 설정을 하면 마운트가 안되었다.

그럴 때는 아래 명령을 통해 이전 설정을 제거 해주어야 한다.

 sudo nano /etc/fstab

사용할 디렉토리와 관련된 모든 줄들을 제거해준다.

그리고 아래로 마운트를 해준다.

sudo mount - a

그런 다음 disks에서 설정을 해주고 마운트를 시켜주면 잘 작동한다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

내가 우분투에서 사용했던 프로그램 목록을 작성한다.

클레멘타인 음악 재생기이다.

vlc 동영상 재생기이다.

krename 파일 이름변경 프로그램이다.

albert 일종의 단축키같은 프로그램이다.

converseen 아이폰 이미지를 jpg로 변경할 때 사용했다.

extensions 우분투에 여러가지 확장 프로그램 설치와 연관된 프로그램이다.

usertheme, arc menu, dash to panel 익스텐션에서 설치했던 확장 프로그램들이다.

freefilesync 파일과 폴더 자료 동기화 프로그램이다.

gdebi 패키지 인스톨러 deb파일을 gui에서 설치할 수 있도록 하는 프로그램이다.

GPicView 아이폰 이미지 파일을 볼수 있는 이미지 뷰어다.

motrix 바이두에서 파일 다운로드 받을 때 사용했다.

p7zip 분할 압축풀기가 지원되는 압축프로그램이다.(한글로 된 파일이 압축해제가 안되는것 같다.)

synaptic package manager 우분투 프로그램 설치 제거를 관리하기 위한 gui 프로그램이다.

ubuntu cleaner 임시파일 등을 정리하기 위한 프로그램이다.

whitesur 테마 맥의 bigsur를 오마쥬?한 우분투 테마이다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

독에서 아이콘을 누르면 최소화되도록 설정하기

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

 

추가한 저장소 삭제하기

 

아래 파일에서 관련 저장소를 제거해주고

sudo nano /etc/apt/sources.list

아래 폴더에 있는 관련 저장소 파일을 삭제해 주어야 한다.

cd /etc/apt/sources.list.d/

 

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

https://blog.wise-leader.com/transmission_server/

 

Good Daddy의 Ubuntu 리눅스 NAS - 트랜미션 서버 설치하기 - 굿대디의 지식공유 일기

Good Daddy의 Ubuntu 리눅스 NAS - 트랜미션 서버 설치하기 굿대디의 지식공유 일기 %

blog.wise-leader.com

을 참고하였습니다. 

 

트랜스미션 저장소를 추가해준다.

sudo add-apt-repository ppa:transmissionbt/ppa

설치할 수 있는 것을 업데이트 하고 트랜스미션 관련항목들을 설치해준다.

sudo apt-get update
sudo apt-get install transmission-cli transmission-common transmission-daemon

트랜스미션을 설정한다.

sudo vi /etc/transmission-daemon/settings.json

아래 항목들을 수정해준다.

"download-dir": "/transmission/download",     #다운로드 디렉토리이다.
"incomplete-dir": "/transmission/incomplete", #incomplete 디렉토리이다.
"incomplete-dir-enabled": true,				  #incomplete 디렉토리를 사용할 여부이다.
"rpc-bind-address": "0.0.0.0",                #WEB-Interface으로 접근가능한 주소이다. 0.0.0.0는 모두 접속가능하다. 
"rpc-authentication-required": true,          #계정과 비밀번호를 입력해야 하는지 설정이다 false로 설정할시에 그냥 접속할수있다.
"rpc-enabled": true,                          #당연하지만 외부에서 접속이 가능하게 활성화가 필요하다.
"rpc-password": "passwd",                 	  #외부앱에서 접속시 사용자 비밀번호
"rpc-username": "user",                    	  #외부앱에서 접속시 사용자 계정명
"rpc-whitelist": "trans.example.com",         #외부 접속이 가능한 사이트 명이나 IP 를 적어준다.
"rpc-whitelist-enabled": false,         	  #이걸 false로 해야 외부에서 접속이 가능하다.
"rpc-port": 9091,                             #원격으로 접속하는 WEB-Interface의 포트번호이다.

버그인지 설정을 저장하고 재시작(restart)을 했을때 초기화 되는 현상이 발생했다. restart대신에 reload를 해주자.

sudo service transmission-daemon reload

트랜스미션 서버를 시작한다.

sudo service transmission-daemon start

재부팅되어도 트랜스미션이 시작되도록 설정을 추가한다.

sudo vi /etc/systemd/system/transmission-daemon.service

아래 항목을 넣어준다.

[Unit]
Description=transmission-daemon

[Service]
User=debian-transmission
ExecStart = /usr/bin/transmission-daemon -f --config-dir /var/lib/transmission-daemon/info
Restart = always
RestartSec = 240
IOSchedulingClass = best-effort
IOSchedulingPriority = 7
Nice = 10
CPUSchedulingPolicy = idle

[Install]
WantedBy=multi-user.target

추가한 설정을 적용해 준다.

sudo systemctl --system daemon-reload
sudo systemctl enable transmission-daemon.service
sudo systemctl start transmission-daemon.service

이제 localhost:9091 이나 외부 도메인을 통해 접속이 가능해졌다.

파일 쓰기 권한을 위해 아래와 같이 추가해준다.

sudo usermod -aG username debian-transmission
sudo chown username:username -R transmission/
sudo chmod 775 -R transmission/

 

그리고 설정 파일이 바뀌지 않았는지 확인해준다.

sudo vi /etc/transmission-daemon/settings.json

바뀐게 있다면 다시 제대로 설정해주자.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

우분투 서버에서는 기본적으로 영어와 유사한 언어만 설치가 된다.

때문에 한글을 입력하려면 한글을 추가로 설치해 주어야 하는 것 같다.

먼저 gui환경을 설치해야한다.

우분투 서버에 gui환경 설치하기

gui가 설치되면 settings 앱에서 region & language를 선택해준다.

manage installed languages를 클릭해준다.

install/remove languages를 클릭해준다.

korean을 찾아서 체크하고 apply를 클릭해준다.

korean이 보일텐데 이를 위에 위치하면 한글로 보이게 해준다.

그런데 cli환경에선 글자가 깨지기 때문에 영어가 위에 있게 해준다.

그리고 우분투를 로그아웃 한 뒤에 다시 로그인해준다.

그러면 적용이 되어 있을 것이다.

 

터미널에서 아래를 실행한다.

ibus-setup

input method 탭을 클릭해준다.

add 를 클릭하고 ...을 눌러 korean을 검색해서 찾아준다. korean을 클릭하고 상단의 hangul을 선택해준다.

add를 클릭한다.

 

settings앱에서 keyboard를 선택한다.

input sources에서 +를 클릭한다.

...을 눌러 korean을 검색해서 찾아준다.

korean을 선택하고 korean (hangul)을 선택하고 add를 클릭한다.

기존에 깔려있던 korean에서 ...을 눌러 remove를 클릭해준다.

 

korean(hangul)에서 ...을 눌러 preferences를 클릭해준다.

hangul toggle key를 모두 remove시켜주고 add로 한영전환 키를 입력한다.

나는 한영키로는 전환이 안되어 shift+space를 이용하고 있다.

ok를 눌러 적용한다.

 

우분투를 재시작한다.

shift+space로 한영이 전환된다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

크롬과 인텔리제이는 gui환경에서 실행할 수 있다.

 

크롬 설치하기

sudo apt update

저장소 목록을 새로 가져온다.

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

우분투 22.04엔 이미 wget이 포함되어 있으니 명령어를 통해 크롬 설치 패키지를 다운로드 한다.

sudo dpkg -i ./google-chrome-stable_current_amd64.deb

다운로드한 크롬 패키지를 설치한다. 

완료되면 어플리케이션 목록에 설치된 것을 확인할 수 있다.

 

자바 sdk openjdk 11 설치

sudo apt-get update

설치가능 리스트를 가져온다.

sudo apt-get install openjdk-11-jdk-headless

headless gui가 없는 버전을 설치해준다. 자바로 gui를 개발할 것이 아니라면 필요가 없을 것이다.

java -version
javac -version

설치된 자바 버전을 확인할 수 있다.

 

자바를 여러개 설치해야 할 경우 아래 명령어로 기본으로 사용될 버전을 선택할 수 있다.

sudo update-alternatives --config java

인텔리제이 설치

먼저 크롬이 인스톨 되었다고 가정하고 설명하겠다.

아래 사이트에서 무료인 커뮤니티 버전을 다운로드한다.

https://www.jetbrains.com/ko-kr/idea/download/#section=linux

 

다운로드 IntelliJ IDEA: 우수성과 인체 공학이 담긴 JetBrains Java IDE

 

www.jetbrains.com

다운로드한 디렉토리에 가서 압축파일을 extract here로 압축해제한다.

바로 보이는 폴더 안에 또 다른 폴더가 들어있다.

이것을 다른 곳으로 이동시켜주고 디렉토리명도 적당히 변경해주자.

bin 폴더 안에서 idea.sh 파일에 오른쪽 클릭하여 run as a program을 클릭하자.

설정을 마치고 프로그램이 실행되면 좌측 하단의 톱니바퀴를 클릭해준다.

create desktop entry를 클릭해주면 어플리케이션 목록에 추가된다.

모든 유저에 추가하려면 create the entry for all users를 체크해준다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

kt공유기는 자체 ddns를 제공하지 않고

가지고 있는 iptime 공유기는 오래되어서 속도나 다른데 문제가 있을 것 같아서

ddns 서비스를 찾아보았다.

무료 서비스인 duckdns를 사용하였다.

https://www.duckdns.org/install.jsp

 

Duck DNS - install

linux cron if your linux install is running a crontab, then you can use a cron job to keep updated we can see this with ps -ef | grep cr[o]n if this returns nothing - then go and read up how to install cron for your distribution of linux. also confirm that

www.duckdns.org

가입한 후에 (사용할domainname).duckdns.org 을 생성해준다.

그리고 상단의 install 을 클릭한다.

linux cron을 선택하고 choose a domain에서 설치할 domain을 고른다.

안내되어 있는대로 실행해서 설치한다.

 

kt 포트 포워딩

kt와이파이 설정에서 포트 포워딩을 해야 외부 도메인을 사용할 수 있다.

소스 ip 주소와 소스 포트는 생략해도 된다.

외부 포트와 내부 포트를 설정해주고 서버의 내부 ip도 설정해준다.

 

kt공유기 임대시간

장치설정->네트워크 관리->랜 연결 설정->DHCP 임대시간을 2147483647로 해주자

이게 초단위인데 대략 계산해보니 68년이다. 이 정도면 충분할 것이다.

안 그러면 내부ip가 자꾸 바껴 포트 포워딩을 매번 수정해줘야한다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

처음엔 plex 미디어서버를 설치했지만 제대로 사용하기 위해선 유료 구매를 해야했다.

그리고 성능도 유료로 구매할 정도는 아닌거 같아서 다른 미디어 서버를 찾았다.

 

jellyfin은 무료이고 설치도 쉽다.

 

https://jellyfin.org/downloads/server

 

Downloads | Jellyfin

The portable version can be run on any system with a .NET Core runtime.

jellyfin.org

curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash

명령 스크립트를 받아서 실행하면 바로 설치가 된다.

enter와 y를 적절하게 입력해준다.

기본적으로 8096포트로 설치가 된다.

 

앞서 설치했던 owncloud와 같은 공간을 사용하기 위해 그룹을 만들고 함께 묶었다.

적당한 그룹을 만든다.

sudo groupadd groupname

젤리핀과 owncloud의 계정을 그룹에 추가해준다.

자신의 사용자도 그룹에 추가하면 data폴더에 접근이 쉬워진다.

sudo usermod -aG groupname www-data
sudo usermod -aG groupname jellyfin

data디렉토리의 소유자 그룹을 변경해준다.

sudo chown :groupname /var/www/owncloud/data

재부팅을 하면 적용이 된다.

 

그외에 권한 문제가 생기면 acl을 참고하기 바란다.(setfacl,getfacl)

https://it-serial.tistory.com/58

 

[Linux] ACL 개념 & 설정법(setfacl, getfacl)

리눅스는 대체적으로 서버로 많이 활용되고 있습니다. 서버로 활용되면 보안을 철저히 해야합니다. 간단하지만 리눅스 서버 보안 관련하여 ACL을 사용하기도 합니다. ○ ACL이란 ? ▷ Access Control L

it-serial.tistory.com

ls -al을 하면 현재 디렉토리의 파일과 디렉토리의 권한과 소유자 그룹을 볼수 있다.

drwxrwxrwx+ 로 나오는데

d는 디렉토리 첫 rwx는 소유자의 권한 두번째 rwx는 그룹의 권한 마지막 rwx는 다른 사용자의 권한이다.

+는 acl이 설정되어 있다는 의미이다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,
sudo vi /var/www/owncloud/config/config.php

개인서버로 cloud서비스를 이용할 수 있는 owncloud를 설치한다.

처음에는 우분투22.04에서 owncloud 설치하기라는 owncloud 가이드대로 했지만

외부 도메인에서 작동하지 않아 다른 설치방법을 찾았다.

https://github.com/linuxsyr/owncloud

 

GitHub - linuxsyr/owncloud: script to install owncloud on ubuntu 22.04

script to install owncloud on ubuntu 22.04. Contribute to linuxsyr/owncloud development by creating an account on GitHub.

github.com

명령어 스크립트를 다운로드 받아서 한 번에 설치할 수 있다.

물론 중간중간 enter와 y를 눌러주긴 해야한다.

 

스크립트 파일을 받아서 실행가능하게 권한을 변경해주고 실행한다.

wget https://raw.githubusercontent.com/linuxsyr/owncloud/main/owncloud.bash
chmod +x owncloud.bash
sudo bash ./owncloud.bash

설치가 다 되면 config.php에 신뢰할수 있는 도메인을 추가해줘야 제대로 작동한다.

sudo vi /var/www/owncloud/config/config.php
'trusted_domains' => [
	'localhost',
	'도메인',
	'내부 ip',
  ],

처음엔 localhost만 존재할 텐데 도메인과 내부 ip를 추가해준다.

 

데이터 디렉토리를 바꾸려면 아래와 링크와 같이 하면 된다.

바꿀 데이터 폴더와 기존 데이터 폴더를 www-data:www-data로 소유권한을 주어야 하는 것 같다.

그리고 폴더가 변경된 이후에 소유그룹을 변경하자.

https://jamong1014.tistory.com/111

 

[Server]OwnCloud 'data 폴더' 바꾸기 (Ubuntu/Debian)

가정 현재 폴더 : /var/www/owncloud/data 새 폴더 : /mnt/owncloud/data 아파치로 웹 서버 사용 중 OwnCloud의 데이터베이스 이름은 'owncloud' 단계 설명 아파치 중지 인스턴스에 대한 유지 관리 모드 활성화 Rsync

jamong1014.tistory.com

 

이걸로 설치를 하게 되면 owncloud 계정이 root에 비밀번호가 1234로 저장된다.

로그인해서 비밀번호를 바꿔는게 좋을 것이다.

그리고 db 계정은 root 이고 비밀번호가 1234인데 바꿔주는 것이 좋을 것이다.

db로 mariadb와 mysql을 사용하는데 비밀번호 변경은 아래와 같이 해주면 된다.

mysql -u root -p

비밀번호를 입력하라고 나오는데 1234를 입력한다.

mariadb에 접속되는데 mysql을 사용한다고 설정한다.

use mysql;

패스워드를 변경해준다. password()는 암호를 복호화해준다.

set password for 'root'@'localhost' = password('바꿀 비밀번호');

 바뀐 사항을 적용시킨다.

flush privileges;
exit;

마리아 db에서 나온다.

mysql -u root -p

새로운 비밀번호로 로그인이 되는지 확인한다.

 

기본적으로 80 포트로 설치된다.

 

owncloud 데이터 폴더 내용을 변경해도 목록이 반영되지 않는데 아래와 같이 하면 반영된다.

owncloud가 설치된 폴더로 들어간다.

cd /var/www/owncloud
sudo -u www-data php occ files:scan --all

파일을 검색해준다.

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,

우분투 서버 22.04 설치

 

설치 USB를 만들었으면 컴퓨터에 꽂고 전원을 킨다.

설치 usb가 없으면 여기서 보자.

여기선 ventoy를 이용했는데 rufus를 사용해도 된다.

delete키를 눌러 부팅 우선순위를 바꾸고 저장하거나

esc키를 눌러 현재 부팅할 저장소를 선택해준다.(해당 키는 메인보드마다 다르다)

그런 뒤에 부팅하면 ventoy 선택화면이 뜰 것이다. 설치할 iso파일을 선택해준다.

 

리눅스 부팅이 시작되는데 여기서 첫번째 normal을 선택한다.

try or install ubuntu server를 선택한다.

설치를 준비한 뒤에 언어를 선택하는 화면이 나온다.

english를 선택하고 done을 눌러준다.

우분투 서버는 기본적으로 cli환경인데 한글이 지원되지 않는다.

추가로 desktop을 깔면 한글을 추가할 수 있지만 cli에서 글자가 깨지므로 기본언어는 영어로 해두는게 좋다.

키보드 레이아웃은 korean으로 설치한다. 어차피 한영키 사용을 위해서 추후에 변경해줘야 한다.

전체설치 최소설치를 선택화면에서 전체설치를 선택하고 done을 눌러준다.

proxy address는 수정하지 않고 done을 눌러준다.

mirror address도 수정하지 않고 done을 눌러준다.

 

설치 버전 update는 가운데 continue without update를 선택해준다.

 

하드 선택은 custom을 선택해서 윈도우를 설치할 때 미리 만들어둔 파티션을 수정해준다.

우분투를 설치할 파티션에 엔터를 누르고 edit를 누르고 ext4 포맷으로 바꿔주고 마운트 위치도 /로 바꿔준다.

그리고 done을 눌러준다.

 

name 폴더에 사용되고 표시되는 이름이다. ex)user

servername 서버의 이름이다. ex)server

username 사용자 아이디이다 ex)userid

password 비밀번호이다.

password confirm 비밀번호를 다시 눌러준다.

 

openssh는 설치해도 되고 안해도 된다.

나는 안하고 지나갔다.

 

이제 한참 기다리면 우분투 서버가 설치 완료된다

완료됐다는 메시지가 나오면 usb를 빼고 엔터를 눌러 재부팅을 시켜준다.

부팅이 완료되면 login이 나올 것이다.

여기에 username을 입력한다.

그리고 password를 입력해서 로그인 한다.

 

sudo passwd root를 해서 root의 비밀번호를 설정해준다.

나는 만든 계정의 비번과 통일했는데 다르게 설정할 수 있는지는 모르겠다.

 

우분투 서버에 gui환경 설치하기

sudo apt-get update

업데이트 가능 패키지를 검색한다.

sudo apt-get upgrade

업데이트를 해준다.

서버 개발 ide를 사용하거나 설정을 쉽게 하기 위해 gui를 설치해준다.

sudo apt-get install --no-install-recommends ubuntu-desktop
sudo apt-get install ubuntu-desktop

위는 최소설치 아래는 전체설치 인데 전체설치를 한다.

저장소 용량을 사용한다고 물어보는데 y를 눌러준다.

sudo apt-get install indicator-appmenu-tools

몇몇 오류 해결과 편의성을 위해 설치해준다.

sudo apt-get install lightdm

가벼운 lightdm을 깔아준다.

gdm3 lightdm 선택화면에서 lightdm을 선택해준다.

 

CLI환경으로 부팅하기

sudo vi /etc/default/grub

desktop을 설치하면 gui환경으로 부팅되는데 cli로 부팅되도록 grub을 수정해준다.

 

화면에서 GRUB_CMDLINE_LINUX_DEFAULT="" 라인을 주석 처리 한다.

GRUB_CMDLINE_LINUX="text" text를 입력해준다.

#GRUB_TERMINAL=console 에서 주석을 제거 한다.

#GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="text"
GRUB_TERMINAL=console

수정을 마쳤으면 esc를 누르고 wq! 엔터를 눌러 저장한다.

sudo update-grub

수정한 grub을 적용해준다.

sudo systemctl set-default multi-user.target

시스템 설정을 cli로 변경해준다.

sudo reboot

리부팅 한다.

 

gui가 필요할때는 서비스를 실행해서 사용한다.

sudo service lightdm start

 

GUI환경으로 부팅하기 

sudo systemctl set-default graphical.target

시스템 설정을 gui로 변경해준다.

sudo vi /etc/default/grub

주석을 제거한다.

GRUB_CMDLINE_LINUX_DEFAULT=""

GRUB_CMDLINE_LINUX에서 text를 지워준다.

GRUB_CMDLINE_LINUX=""

GRUB_TERMINAL를 주석처리한다.

#GRUB_TERMINAL=console

wq!를 눌러 저장한다.

sudo update-grub

수정한 grub을 적용하고 리부팅한다.

reboot

리눅스 시간 로컬 타임존으로 설정하기

듀얼부팅할 경우 리눅스를 부팅한 후에 윈도우를 부팅해보면 시간이 바껴있다.

날짜가 하루 차이거나 같고 시간은 다른데 분이 똑같다.

메인보드까지 동일하게 시간을 바꿔버린다.

타임존에 문제인거 같아서 검색을 해보니

리눅스에선 utc타임을 사용해서 시간을 설정하고 거기서 로컬 타임 시간을 적용한다고 한다.

그걸 로컬 타임을 적용하는 방법이 있었다.

 

우분투 터미널에서 적용해주자.

timedatectl set-local-rtc 1 --adjust-system-clock

잘 적용되었는지 확인하려면 아래를 실행시키면 된다.

timedatectl

그 뒤에 메인보드 시간을 바꾸거나 윈도우에 로그인해서 시간을 동기화 해주어야 하는 것 같다.

이제는 우분투를 부팅하고 윈도우를 부팅해도 시간이 잘 나온다.

 

원래대로 utc 타임을 설정하려면 아래와 같이 실행하면 된다.

timedatectl set-local-rtc 0 --adjust-system-clock

 

블로그 이미지

dev김

안드로이드 개발자로 만 4년이 좀 안되게 근무했었고 그 이상의 공백을 가지고 있다. 다시 현업에 복귀하기 위한 노력의 흔적을 담으려고 한다.

,