티스토리 뷰
1. 개인적으로 개발을 위해서 Kubuntu를 사용하고 있다. 여기서는 기본적으로 debian 기반 버전을 설명한다.
2. 리눅스 UI는 리눅스 코어에 해당하지 않고 부수적인 기능으로 취급된다. 하지만 개발을 위해서는 UI는 필수적인 부분이고 이것이 없으면 vscode 같은 ide를 사용할 수 없기 때문에 리눅스 코어는 아니지만 필수로 취급된다.
3. 최근에는 엔비디아나 AMD에서 만든 그래픽 카드에서도 리눅스를 지원하고 있고 현재 윈도우에서의 기능의 50%정도는 지원하고 있어 그래픽을 사용하는데 있어서 큰 무리가 없다.
4. 리눅스를 부팅했는데도 화면에 GUI가 열리지 않을 때가 있다. 그렇게 되면 검은 화면에 리눅스 로그인 프롬프트가 화면에 뜨게 된다. 많은 리눅스 유저가 여기서 패닉이 되는 경우가 많은데, GUI와 시스템은 별개이기 때문에 GUI가 안 열린다고 해서 시스템을 다시 설치할 이유는 전혀 없다.
5. 가장 많이 사용하는 GUI 서버는 GNOME, KDE plasma, mate-core 정도가 있다. 그놈은 우분트의 기본 GUI로 사용되고 있고 KDE plasma는 Kubuntu의 기본 GUI 서버이다. meta-core는 초경량 GUI서버로 윈도우나 맥 같은 느낌의 화면을 구성해 준다. 도커 데스크톱의 경우는 그놈을 GUI서버로 사용하기 때문에 그놈을 설치해야만 돌아간다. 물론 다른 GUI 서버를 사용해도 그놈을 별도 설치가 가능하다.
6. 사실 Kubuntu는 우분투에서 GUI서버와 Display manager만 다르게 사용하는 버전이다. 이것을 제외하면 동일하다고 해서 무방하다.
7. 이런 GUI서버는 언제나 삭제 설치가 가능하다. 그래서 화면이 안나오고 명령 프롬프트가 뜬다고 해서 두려워할 필요가 전혀 없다. 많이 사용하는 계정으로 로그인해서 sudo 명령어로 GUI를 설치하면 그만이다.
7-1 sudo apt install ubuntu-gnome-desktop, sudo apt install sudo apt install kde-plasma-destop 같이 apt로 설치하면 된다.
8. 어떤 GUI서버를 사용할지를 결정했다면 다음은 Display Manager를 선택해야 한다. 일반적으로 lightdm를 많이 사용한다. 우분투의 기본 DM이다. Kubuntu는 sddm를 사용하고 있다.
8-1 sudo apt install lightdm, sudo apt install sddm 이런 식으로 설치하면 된다.
9. Display Manager 설치되었으면 다른 서비스와 마찬가지로 systemctl로 기동하면 된다.
9-1 sudo systemctl start lightdm.service, sudo systemctl start sddm.service 이런 식으로 기동하면 된다.
10. 요약하면 리눅스의 GUI는 그냥 서비스에 불과하다. 그래서 설치 삭제가 자유롭고 다양한 GUI를 변경하면서 사용할 수 있다.
10-1 일반적으로 GUI가 안나오는 경우는 보통 sudo apt autoremove로 패키지 자동삭제 시에 많이 발생하는 것 같은데, 대부분은 시스템 장애보다는 GUI 패키지나 DM이 삭제된 경우기 때문에 재설치로 간단히 해결이 가능하다.
11. 참고로 GUI가 문제인지를 파악하기 위해서는 리눅스 부팅로그를 살펴보면 도움이 된다. journalctl -k 로 조회하면 되고 부팅과정에 에러가 발생되지 않은 경우는 99% GUI 설치로 해결이 가능하다.
'기록' 카테고리의 다른 글
Encryption - 암호화, 복호화 (0) | 2023.02.11 |
---|---|
Hashing - 해싱과 MAC (Message Authentication Code) (0) | 2023.02.10 |
AWS : private subnet 서버 접근 2 - Session Manager 사용 (0) | 2023.01.29 |
Vagrant : Ubuntu 22.10 Vagrant libvirt로 nfs mount문제 (0) | 2023.01.05 |
Web Service : 1.간략한 이해 (0) | 2022.12.22 |
- Total
- Today
- Yesterday
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
- Rest
- MYSQL
- 외부파일
- 하이버네이트
- 상속
- Spring Security
- Validation
- crud
- 스프링부트
- 자바
- Security
- XML
- mapping
- RestTemplate
- 매핑
- WebMvc
- 설정하기
- one-to-many
- login
- one-to-one
- 설정
- 로그인
- 스프링
- form
- jsp
- Angular
- Spring
- hibernate
- Many-To-Many
- spring boot