Linux 10

LXD와 LXC의 차이

LXD란 무엇인가? 컨테이너 매니저다. LXD 자체는 컨테이너가 아니다. LXC라고하는 Linux Container를 구동할 수 있도록 해준다. 추가적으로, 클러스터링 같은 기능을 지원한다. LXC란 무엇인가? 리눅스 컨테이너. LXC container는 가상머신 같다.(VM-like) Docker 컨테이너는 변경사항이있고, 종료하고 다시 띄우면 변경사항을 잃는다. 반면에, LXC는 가상머신을 재부팅한 것처럼 변경사항이 유지된다.

[lxc] 인스턴스 생성 실패 Failed detecting root disk device: No root device could be found 해결방법

ubuntu@:~$ sudo lxc launch ubuntu:22.04 manager1 Creating manager1 Error: Failed instance creation: Failed creating instance record: Failed initialising instance: Invalid devices: Failed detecting root disk device: No root device could be found lxc 인스턴스 생성시에 No root device could be found 오류가 떴을 경우, profile에 root disk에 대한 storage 설정을 해주어야한다. storage 목록이 만약에 비었다면, $ lxc storage ls +------+--------..

프로그래밍/Linux 2022.10.03 (1)

[Bitrise Cli] 리눅스 서버에서 CI/CD pipeline 직접 구축해보기 (1)

CI/CD pipeline 직접 구축해보기 (1편, 현재 포스트) https://jizard.tistory.com/405 CI/CD pipeline 직접 구축해보기 (2편) https://jizard.tistory.com/410 CI/CD가 왜 필요할까? 일하다보면 빌드 시간이 너무 길게 느껴진다. QA할 버전좀 올려주세요~ 개발서버버전 올려주세요~ 그와 동시에 배포도하고... 프로가드를 사용중인 프로젝트에서 내 컴퓨터로 빌드를하면 10분정도가 걸릴때도 있었다. 무엇보다 개발 열심히 하고있는데 흐름이 끊기는게 가장 큰 문제점이다. CI/CD는 마치 UI/UX처럼 뜻은 다르지만 따라다니는 친구들인데, 앱 개발부터 배포까지 자동화하는 방법이다. CI는 지속적 통합(Continuos Integration)로,..

[Linux] 자바 버전 변경하기

JAVA 16버전을 사용하는 서버에서 안드로이드 빌드를 하는걸 구현하는 도중 "jlink executable /usr/lib/jvm/java-16-openjdk-amd64/bin/jlink does not exist."라는 오류가 발생했었는데, java-11-openjdk 아래에만 jlink가 설치되어 있었다. 그래서 16에서 11로 버전을 변경하게되었는데, 방법을 살펴보자. 1-1. 빠르고 쉬운 방법 update-alternatives를 이용하면된다. $ update-alternatives --config java 대체 항목 java에 대해 (/usr/bin/java 제공) 2개 선택이 있습니다. 선택 경로 우선순? 상태 ---------------------------------------------..

Linux 날짜 기준으로 오래된 파일 삭제하기

find # 수정된지 2일 지난 파일 find -mtime +1 # 수정된지 2일 이내의 파일 find -mtime -1 # 수정된지 2일 지난 파일을 삭제 find -mtime +1 -delete # 수정된지 2일 지난 txt 파일을 삭제 find -name '*.txt' -mtime +1 -delete find 명령어를 이용하여 특정한 날짜 기준으로 파일을 삭제할 수 있다. 아래는 find 명령어의 관련 옵션들이다. 옵션명 설명 mtime modification time, 수정시간 (내용) ctime change time, 변경 시간 (속성/권한/크기 변화) atime access time, 접근 시간 (open) name 파일 이름 delete 삭제 crontab에 Task 등록하여 주기적으로 삭제..

2 > &1의 진짜 뜻

# stdin, stdout, stderr "2>&1"를 알아보기전에 이들이 무엇인지 먼저 알아보아야한다. 표준입력(stdin), 표준출력(stdout), 표준에러(stderr)는 unix 커맨드를 실행할때 생성되는 3가지 데이터 스트림(data stream)이다. 스트림은 데이터를 전송할 수 있는 어떤 것인데, 여기서 세 데이터 스트림이 전송하는 데이터는 텍스트(text)다. # File Descriptor 알다시피, unix의 모든 것은 파일이다. 위 표준입/출력/에러 3가지도 unix에겐 파일인데, 프로세스가 열려있는 파일들을 관리하고 이 파일들에 접근하도록 하기 위해서 파일 디스크립터(File Descriptor)라는 추상 개념을 이용하게된다. 이름은 숫자가 아닐것처럼 생겼지만, 파일 디스크립터는..

Windows와 WSL 사용법 - 마운트 / 파일전송

WSL은 윈도우10이상에서 리눅스를 사용하기 위한 도구다. Windows에서 리눅스 계열 실행파일의 표준인 ELF binary 파일을 실행할 수 있게 해주는 호환성을 추가했다. * 자세한 설명은 이 링크가 도움이 될 것 같다. 명령 프롬프트 또는 Powershell에서 bash를 입력하면 WSL에 마운트 된다. WSL에서 /mnt/드라이브를 입력하면 원하는 드라이브를 마운트 시킬 수 있어 Windows 파일 접근이 가능하다. 파일 전송과 복사도 이걸 가지고 하면된다. $ cd /mnt/c/Users/ASUS/Downloads/ $ mv ./test.txt ~

[안드로이드] adb 개념과 사용법 / 무선 디버깅 연결방법

adb 개념 안드로이드 디버그 브릿지 (adb)는 안드로이드 기반 에뮬레이터 혹은 실제 휴대기기와 통신할 수 있게 해주는 커맨드라인 툴이다. 이름 잘 지었는걸? 앱 설치 / 로그캣 명령어 확인 / 디버깅 등 앱 개발에 유용한 명령어 뿐만아니라 Unix shell에 접근할 수 있게 함으로서 기기 내 파일 관리, 프로세스 확인 등 다양한 작업을 가능하게 한다. adb는 명령어를 전송하는 클라이언트 / 각 기기에서 백그라운드 프로세스로 실행되는 데몬(adbd) / 클라이언트와 데몬간의 통신을 관리하는 서버로 이루어져있다. 안드로이드 스튜디오에서 기기가 제대로 detect되지 않을때 adb server를 재시작하는 이유가 여기에 있었다... adb 사용하기 터미널에 adb를 입력해보고, 환경변수 등록이 되지 않..

프로그래밍/Android 2021.08.24 (2)