2024년 9월 24일 화요일

dpkg - 우분투(데비안) 패키지 관리 프로그램

dpkg는 데비안 패키지 관리 시스템의 기초가 되는 소프트웨어로서, .deb 패키지의 설치, 삭제, 정보 제공을 위해 사용되는 명령어입니다.

dpkg 자체는 APT 등과 같은 고급 도구에 비해 낮은 레벨의 도구이며 복잡한 패키지 관계와 패키지를 원격에서 받아오는 등의 일을 합니다. APT도 Ubuntu의 소프트웨어를 관리하기 위해 내부적으로 이 dpkg를 사용합니다.

패키지 설치

dpkg -i <.deb 파일>

설치된 패키지 제거
dpkg -r <패키지명>
: 해당 패키지 삭제 (삭제 시 설정 파일들은 남겨둡니다.)

sudo dpkg -P <패키지명>
: 해당 패키지와 해당 패키지의 설정파일을 모두 삭제

설치된 패키지 목록 보기
dpkg -l

$ dpkg -l | grep ^rc
rc  bogofilter                                  1.2.4+dfsg1-12 ...

위에 보이는 대로 상태가 rc 인 패키지는 삭제 되었지만 설정 파일이 남아 있음을 의미합니다.
dpkg -P bogofilter 명령어로 완전히 삭제 할 수 있습니다.

상태가 rc 인 모든 패키지를 지우고 싶다면 아래 명령어로...
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

커널 업데이트 이후에 부팅이 제대로 되지 않는 문제가 발생하였다.
grub 에서 과거 커널로 부팅 할 수 있지만, 추가 업데이트 되다 보면 잘 작동하는 버전이 grub 에서 사라지지 않을까 하는 불안이 들어서 문제가 있는 커널을 지웠다.
또한 인터넷에서 커널을 좀 더 편하게 지우는 법을 찾았다.

언젠가부터 apt autoremove 로 예전 커널을 지울 수 있게 됐다. 현재 커널과 예전 커널 2개(?)를 남기고, 그 이전 커널들은 모두 알아서 지워준다.
하지만, 어떤 이유로든 계속 남아있는 커널들이 있다. 남아있다고 해서 문제가 되지는 않지만, 혹시나 /boot 를 독자 파티션으로 설정한 경우, 용량 부족이 생길 가능성은 있다.
따라서, 남은 커널을 지울 필요는 있는데.. 어떻게 할 수 있으려나?
현재 설치되어 있는 커널을 알아보는 방법을 먼저 알아봐야겠다.

$ sudo dpkg --list | egrep -i --color 'linux-image|linux-headers'
ii  linux-headers-5.4.0-42-generic       5.4.0-42.46~18.04.1                             amd64        Linux kernel headers for version 5.4.0 on 64 bit x86 SMP
ii  linux-headers-generic-hwe-18.04      5.4.0.42.46~18.04.35                            amd64        Generic Linux kernel headers
ii  linux-image-5.3.0-1033-gke           5.3.0-1033.35                                   amd64        Signed kernel image GKE
ii  linux-image-5.3.0-1034-gke           5.3.0-1034.36                                   amd64        Signed kernel image GKE
rc  linux-image-5.3.0-62-generic         5.3.0-62.56~18.04.1                             amd64        Signed kernel image generic

이 중, 첫번째 열에 ii/rc 라고 나와있는데, 이건 무슨 뜻일까?

ii : ‘It should be installed and it is installed’
rc : ‘It’s removed/uninstalled but it’s configuration files are still there’
ii 는 현재 정상 설치되어 있는 커널이고, rc 는 지워졌으나 설정은 남아있는 커널이다.

ii 든, rc 든 모두 apt purge 로 지울 수 있다.
형식은 다음과 같다.

sudo apt purge linux-headers-<판본번호> linux-image-<판본번호>
위의 경우 이런 식으로 선택/삭제해줄 수 있다.

sudo apt purge linux-headers-6.8.0-45-generic linux-image-6.8.0-45-generic
linux-image-6.8.0-45-generic 을 삭제하면 linux-image-unsigned-6.8.0-45-generic 를 설치함.

특정 파일이 속한 패키지 확인
dpkg -S /etc/ssh/ssh_config
: 해당 파일명 또는 경로가 포함된 패키지들을 검색

dpkg -C <.deb 파일>
: 해당 .deb 파일이 설치한 파일의 목록 확인

dpkg -s <패키지명>
: 해당 패키지에 대한 정보 확인

dpkg -I <.deb 파일>
: 해당 .deb 파일에 대한 정보 확인

sudo dpkg -i <.deb 파일>
: 해당 파일 설치 또는 최신 버전으로 업그레이드

sudo dpkg -x <.deb 파일> <디렉토리>
: 파일에 포함되어있는 파일들을 지정된 디렉토리에 압축 해제
(※ 이 명령을 실행할 경우, 해당 디렉토리를 초기화 시켜버리므로 주의해야 합니다!!!!!!!!)







2024년 8월 21일 수요일

Beyond compare, bcompare

* 단축키 변경
Tool -> Option -> Toolbars -> Select view : Text Compare 로 변경
찾기에서 differ 입력
Next Difference Section : Alt + Down
Prev Difference Section : Alt + Up
찾기에서 Copy 입력
Copy Line to Left : Alt + Left
Copy Line to Right : Alt + Right
OK 버튼

2024년 8월 4일 일요일

윈도우 C 드라이브 용량 줄이기 windows C drive diet

* 리눅스 환경에서 virtual box를 이용 윈도우를 사용중인데, SSD 용량이 부족한다.
예전에는 20G 수준이었던 것 같은데 55G 까지 사이즈가 늘어났다.
이에 용량을 줄이는 방법을 찾아보았다.

방법 1
windows\installer 폴더 안에 있는 파일 삭제 (10G 넘는 용량이 있었음)
아직 까지는 문제가 없어 보이는데 좀 더 지켜볼 예정
1. 만약을 대비하여 \windows\Installer 폴더를 백업
2. 명령 프롬프트를 관리자 권한으로 실행
3. cd \Windows\Installer
3. cd \Windows
4. DEL *.ms? /F /S /Q /A
4. rmdir Installer /s /q
    mkdir Installer

아래와 비슷한 포맷의 폴더에는 어플리케이션의 아이콘 등의 정보가 들어가 있음.
C:\Windows\Installer\{3F18F548-9500-4E16-BD95-5235F3F00E1A}\

원문은 22년 10월 23일 작성
22년 2월 13일 업데이트 : 아직 까지 문제점 발견되지 않음.

방법 2
mklink 를 사용하여 다른 드라이브로 파일 옮긴 뒤에 링크
C:\Users\<account>\AppData\Local\Kakao 폴더가 10G가 넘는 상당한 용량을 차지하고 있어서 해당 폴더를 옮겨 볼 예정
방법 #1 로 상당한 용량이 절약되어 아직 해보지 않았음.

용량 확인 프로그램
https://sourceforge.net/projects/windirstat/

출처
#1#2#3

2024년 7월 30일 화요일

VirtualBox on Ubuntu

호스트 : Ubuntu 24.04
게스트 : Windows 10

* USB 장치가 보이지 않는 문제가 있어서 아래 명령어 실행.
sudo usermod -aG vboxusers $(whoami)

* 게스트 OS에서 Serial port를 사용하기 위해서 아래 명령어 실행.
sudo adduser $(whoami) dialout

------------------------------------------------------------------------------------------------------------
호스트 : Ubuntu 18.04
게스트 : Windows 10

윈도우 게스트에서 VBoxSVGA(머신 > 설정 > 디스플레이 > 그래픽 컨트롤러)가 기본으로 설정된다. 매뉴얼에는 향상된 그래픽을 제공한다고 설명되어 있지만, 체감적으로 VBoxVGA 보다 확실히 느리다. 또한 3D 가속 선택하여 사용시 Office 2013 프로그램과 Windows 시작 메뉴 검색화면에서 화면 깨짐현상을 경험하였다.
VBoxVGA 모드에서 VirtualBox가 죽는 현상 한번 경험.
로그상으로는 3D 가속기능과 연관이 있어 보임.
결론적으로 나는 VBoxVGA 모드(2D 가속 선택/3D 가속 막음)로 사용중이다.

VMSVGA - 리눅스 게스트의 기본 값이다.

이전에 사용하던 컴퓨터에서는 아래 사이트를 참조하여 윈도우 정품인증을 받았음.
참조1
참조2

새로운 컴퓨터에서 동일한 방법으로 설치 하였지만 윈도우 정품인증이 되지 않음.
아마도 VirtualBox 컴퓨터 환경(예를 들면 CPU 등)이 변경되어서 그런것으로 추측.

그래서 이전 컴퓨터에서 설치한 이미지를 가지고 와서 사용 중.
문제점 1. 마이크로소프트 스토어에서 다운로드가 되지 않는다. 해결하지 못함.
WXAR_1.2 프로그램 사용하여 스토어, MAP 삭제해 버렸음.

* USB 장치가 보이지 않는 문제가 있어서 아래 명령어 실행.
sudo usermod -aG vboxusers $(whoami)

* 게스트 OS에서 Serial port를 사용하기 위해서 아래 명령어 실행.
sudo adduser $(whoami) dialout

* VirtualBox 외부 드라이브 퍼미션
chmod 700 [file] -> exec 퍼미션도 줘야지 파일 생성이 가능하다.

* Error reading custom ACPI table. (VERR_FILE_NOT_FOUND)
이미지를 복사/이동하고 위와 같은 에러가 난다면 vbox 파일에서 slic.dat 파일의 경로를 확인할것. slic.dat의 경로가 절대경로로 되어 있음.

Ubuntu 24.04 Setup

* 기본폴더 영문 이름으로 변경 (다시 설치 할때 아예 영문 버전으로 설치했음)
언어를 한글을 선택하여 설치하면 기본 폴더('다운로드' 등)가 한글로 세팅되어,
개인적으로는 command line을 많이 사용하는 관계로 불편한 점이 있다.
아래 2개의 명령어만으로 영문폴더명으로 변경할 수 있다.
유의사항은 기존 폴더에 추가한 파일이 있다면 삭제하고 진행하도록 하자.
추가된 파일을 삭제하지 않으면, 기존 한글 폴더 이름이 변형되면서 완전히 삭제되지 않는다.

export LANG=C
xdg-user-dirs-gtk-update

* 개발시 설치해야 하는 패키지
sudo apt install build-essential git silversearcher-ag htop lm-sensors

* 설정 -> 접근성 -> 보기 -> 고대비, 모양 사용/해제(이거는 먼지 모르겠음),
  (다음은 노트북에서만) 큰 글씨 선택, 커서 크기 크게

* 터미널 세팅 변경
  1. 마우스 오른쪽 → Preferences (기본설정) > Shortcuts (바로가기) 에서 단축키를 변경할 수 있다.
  2. Reset and Clear : Alt+Q
  3. Switch to Previous Tab : Alt+Left
  4. Switch to Next Tab : Alt+Right
* 디스크(gnome-disk) 세팅
기본적으로 시스템 파티션이 아닌 파티션은 /etc/fstab 구성 파일에 설정되어 있어야 지정된 디렉토리에 자동으로 마운트됩니다.
다른 내부 파티션은 마운트되지 않습니다. 그러나 파일 관리자의 왼쪽 창에 표시되며 아이콘을 클릭하면 마운트할 수 있습니다. 이동식 드라이브는 플러그인하면 자동으로 디렉토리(/media/<id>/)에 마운트됩니다. 디스크 유틸리티를 사용하여 시작 중에 마운트할 파티션을 구성할 수 있습니다.
마운트 지점은 마운트 후 마운트된 파티션의 내용이 나타나는 (빈) 디렉토리입니다. 원하는 디렉토리로 변경하세요. 일반적으로 /mnt/ 폴더를 주로 사용합니다.

마운트 옵션에서 기본 사용자 세션은 비활성화 하고 '시작할 때 시스템에 마운트'를 체크 해야 자동으로 마운트 된다.
톱니바퀴 모양의 아이콘을 클릭하고, 나타나는 팝업 메뉴에서 "마운트 옵션 편집..."을 선택하세요.
"마운트 옵션" 대화 상자가 나타납니다. "기본 사용자 세션"을 선택 취소합니다. "시스템 시작 시 마운트"를 선택합니다. 선택적으로 파일 관리자의 왼쪽 열에 파티션을 표시하려면 "사용자 인터페이스에 표시"를 선택합니다. "마운트 지점"을 변경합니다.
다시 시작한 후 드라이브가 마운트되어야 합니다. 사용자로 읽기/쓰기 액세스 권한을 얻으려면 해당 디렉토리의 소유자가 되세요. 이는 Disks에서도 가능합니다. 이제 팝업 메뉴에서 "소유권 가져오기..."를 선택하세요.
원하는 이름으로 마운트하기 위해서 '다음으로 식별'에서 by-label을 주로 사용한다.

* 터미널 색상 변경 참조
터미널 메뉴 -> 기본 설정 -> 프로파일 추가(+ 버튼) -> 색 탭 선택 -> 아래쪽 색 팔레트에서 마음에 들지 않는 색상을 선택하여 색상 변경. -> 추가된 프로된 프로필을 기본값으로 변경(프로필 오른쪽 아래쪽 꺽음쇠 눌러서 변경)

* 터미널에서 백스페이스 누르면 껌뻑거리는 기능 막기
마우스 오른쪽 -> 기본설정 -> 현재 프로파일 -> 텍스트 탭 -> 터미널 삑소리 기능 끄기

* 시작프로그램 메뉴 : gnome-session-properties 실행

* gnome-disk를 사용 Linux swap partition 파티션을 생성 마운트 하면 swap 세팅이 완료 됨.
  확인은 sudo swapon --show
  swap file 보다 partition이 속도가 좀 더 빠르다고 함. 용량을 조절하는 유연성은 떨어지겠지만...
  참조

* dash 대신 bash로 기본 쉘을 바꾸기 (docker를 사용할거라 변경하지 않았음)
sudo dpkg-reconfigure dash
"NO", "아니오" 를 선택
ls -al /bin/sh
lrwxrwxrwx 1 root root 4 10월 20  2017 /bin/sh -> bash

sudo apt install openssh-server

* MINICOM 세팅
sudo apt install minicom
sudo minicom -s : 셋업메뉴로 바로 진입
-> Serial port setup
-> A 누름 -> Serial Device : /dev/ttyUSB0
-> E 누름 -> 921600 8N1
-> F (하드웨어/소프트웨어 흐름 제어, hardware/software Flow Control) 누름 -> No 선택 -> Enter
-> Save setup as dfl (enter)
default  값은 home 폴더에 .minirc.dfl 이름으로 저장됨

* 워크스페이스 위치를 상하(위아래)로 변경
V-Shell(Vertical Workspace) GNOME-Shell Extension을 설치
1. 그놈 확장쉘 홈페이지
sudo apt-get install gnome-browser-connector
https://extensions.gnome.org/extension/5177/vertical-workspaces/
로 들어가서 설치
2. gnome-shell-extension-manager 앱
sudo apt install gnome-shell-extension-manager
extension-manager 또는 '확장 관리자' 실행
확장 검색 탭 선택 -> v-shell 검색 -> 설치

* 로그인창에서 X Window 선택하는 설정 아이콘(오른쪽 하단)이 보이지 않음
echo $XDG_SESSION_TYPE
이 명령어는 현재 상태를 보여준다고 하는 데 x11로 나옴.
즉 Wayland를 지원하지 않고 X Windows만 지원하는 것 같음. 와이??

* 듀얼모니터에서 로그인창이 중간에 걸쳐서 나오는 문제 해결
로그인 후 설정에 보면 알수 없는 그래픽카드가 잡힘?? 기본적으로 비활성화되어 있음.
> xrandr 명령어로 보면 아래와 같이 잡힘.
None-2-1 connected (normal left inverted right x axis y axis)
   1680x1050     60.00 +

아래 명령어 실행하고 리부팅하여 해결됨.
sudo cp $HOME/.config/monitors.xml /var/lib/gdm3/.config/monitors.xml
sudo chown gdm:gdm /var/lib/gdm3/.config/monitors.xml

* doublecmd alt+f7 단축키 충돌 수정
설정 -> 키보드 -> 바로 가기 보기 ... -> alt f7 입력 -> '창 옮기기' 뜸 -> 선택 -> 백스페이스로 단축키 삭제

* 설정 -> 우분투 데스크톱 -> 독 동작 구성 -> 볼륨과 장치 표시

* visual-bell 설정
gsettings set org.gnome.desktop.wm.preferences audible-bell false
gsettings set org.gnome.desktop.wm.preferences visual-bell true

gsettings set org.gnome.desktop.wm.preferences visual-bell-type frame-flash
fullscreen-flash : 전체 화면 흑백 플래시 발생
frame-flash : 벨 신호를 보낸 애플리케이션의 타이틀바가 깜빡이게 합니다.

* epub 파일 리더
sudo apt install foliate

sudo apt install duf >> 파티션 용량을 알아보기 편하게 보여준다.

2024년 5월 8일 수요일

우분투 NFS 설정

* 서버 설정
apt-get install nfs-common nfs-kernel-server rpcbind

/etc/exports
/home/xyz 192.168.0.X(rw,sync,no_root_squash,no_subtree_check)
/home/123 *(rw,sync,no_root_squash,no_subtree_check)

[/경로] [허용할 IP주소. *은 모두허용](옵션들)
(IP주소와 옵션은 붙어있다. 띄어쓰기하면 기본값으로 열리니 주의)

옵션은 다음과 같은 선택지가 있음
ro : 읽기 전용
rw : 읽기 및 쓰기 가능
no_root_squash : 클라이언트쪽 root도 서버쪽 root와 같은권한가짐
no_all_squash : root이외 모든사용자에대해 UID가 같으면 같은권한을가짐
sync : 서버와 클라이언트사이에 sync를 맞춤
insecure : 인증 안되도 접속허가

서버 재시작
service nfs-kernel-server restart
service rpcbind restart

* 클라이언트 설정
apt-get install nfs-common

mount -t nfs [IP]:[서버_경로] [클라이언트_경로]
> mount -t nfs 192.168.0.2:/home/xyz /home/xyz



NFS(Network File System)를 사용하여 리눅스 간에 파일을 공유하는 방법을 설명해 드리겠습니다.

1. **NFS 서버 설정**:
   - NFS 서버를 구성하기 위해 먼저 필요한 패키지를 설치해야 합니다. 대부분의 리눅스 배포판에서는 `nfs-utils` 패키지를 사용합니다. 예를 들어, Ubuntu에서는 다음 명령을 사용하여 설치할 수 있습니다.
     ```
     sudo apt update
     sudo apt install nfs-kernel-server
     ```

2. **공유할 디렉토리 설정**:
   - NFS로 공유하려는 디렉토리를 설정합니다. 예를 들어, `/srv/nfs/share` 디렉토리를 생성하고 공유할 디렉토리로 사용합니다.
     ```
     sudo mkdir -p /srv/nfs/share
     ```

3. **NFS 설정 파일 편집**:
   - NFS 서버의 설정 파일인 `/etc/exports` 파일을 편집하여 공유할 디렉토리와 접근 권한을 지정합니다.
     ```
     sudo nano /etc/exports
     ```
   - 예를 들어, `/srv/nfs/share` 디렉토리를 모든 클라이언트에게 읽기/쓰기 권한으로 공유하려면 다음과 같이 설정합니다.
     ```
     /srv/nfs/share    *(rw,sync,no_subtree_check)
     ```

4. **NFS 서비스 재시작**:
   - 설정을 변경했으면 NFS 서비스를 재시작하여 변경 사항을 적용합니다.
     ```
     sudo systemctl restart nfs-kernel-server
     ```

5. **NFS 클라이언트 설정**:
   - NFS 서버에 공유된 디렉토리를 마운트하여 클라이언트에서 사용할 수 있습니다. 클라이언트에서 마운트할 디렉토리를 생성합니다.
     ```
     sudo mkdir -p /mnt/nfs_share
     ```
   - 그리고 NFS 서버에서 공유한 디렉토리를 마운트합니다.
     ```
     sudo mount <NFS_SERVER_IP>:/srv/nfs/share /mnt/nfs_share
     ```

6. **부팅 시 자동으로 마운트 설정** (선택 사항):
   - NFS 공유를 부팅 시 자동으로 마운트하려면 `/etc/fstab` 파일에 해당 마운트 정보를 추가합니다.
     ```
     <NFS_SERVER_IP>:/srv/nfs/share   /mnt/nfs_share   nfs   defaults   0   0
     ```

이제 NFS 서버에서 공유한 디렉토리는 클라이언트에서 마운트되어 사용할 수 있습니다. 공유한 파일은 마운트된 디렉토리에 로컬 파일처럼 접근할 수 있습니다.

dpkg - 우분투(데비안) 패키지 관리 프로그램

dpkg는 데비안 패키지 관리 시스템의 기초가 되는 소프트웨어로서, .deb 패키지의 설치, 삭제, 정보 제공을 위해 사용되는 명령어입니다. dpkg 자체는 APT 등과 같은 고급 도구에 비해 낮은 레벨의 도구이며 복잡한 패키지 관계와 패키지를 원격에...