윈도우보다는 우분투에 젠킨스를 설치하는 편이 좋을 것 같아 WSL2를 사용하여 우분투 환경에서 젠킨스를 설치하기로 했다.
sudo apt-get update
sudo apt-get install default-jre
*JRE(Java Runtime Environment)란?
Java 프로그램이 올바르게 실행되기 위해 필요한 소프트웨어. JRE는 Java 프로그램과 운영 체제 간의 통신을 위한 기본 기술이다. JRE는 Java 소프트웨어 작성 시 추가 수정 없이 어떤 운영 체제에서도 실행되도록 모든 리소스를 제공하는 번역기 및 촉진자 역할을 한다.
참고자료: [AWS]JRE란 무엇인가요?
update-java-alternatives -l
sudo nano /etc/environment
JAVA_HOME="/usr/lib/jvm/java-1.11.0-openjdk-amd64"
경로 추가 후 Ctrl+X
와 Ctrl+Y
를 눌러 파일을 저장 후 닫고 나온다.
sudo -s
source /etc/environment
❗오류 발생❗
명령어 목적
sudo
를 사용하여 환경 변수 파일인 /etc/environment
를 실행하려고 시도한다.
❓오류 원인
source
명령어는 셸의 일부이며 일반적으로 외부 명령어가 아니다. 또한, sudo는 특정 명령어를 루트 권한으로 실행하도록 허용하는 명령어이다. 그러나 source
는 셸에 내장된 명령어이며 셸 스크립트를 실행하여 현재 셸 세션으로 환경 변수를 로드한다. sudo
와 source
는 동일한 컨텍스트에서 사용되지 않는다.
✅ 오류 해결 방법
sudo-s
를 사용하여 새로운 루트 셸을 열고 source /etc/environment
를 실행하면 루트 권한으로 환경 변수를 로드할 수 있다.
sudo -s
source /etc/environment
sudo-s
: 새로운 루트 셸을 생성하여 루트 권한으로 셸을 실행한다.
이렇게 하면 현재 사용자의 환경 설정을 무시하고 루트 셸의 환경으로 전환된다. 그런 다음 새로운 루트 셸에서 source /etc/environment
명령어를 실행하여 /etc/environment
파일을 실행하고 환경 변수를 현재 셸로 로드한다. 이때 source
명령어는 현재 셸의 일부이므로 사용할 수 있다.
참고자료: [Ubuntu ASK] sudo source: command not found 에러 시 해결 방법
OK 결과가 나와야 한다!!
wget --no-check-certificate -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.gpg | \sudo apt-key add -
❗오류 발생❗ OK라고 출력되어 다음 단계를 실행해봤지만 GPG 에러와 함께 젠킨스가 설치되지 않는 결과가 나와 해결 방법을 찾게 되었다ㅠ
명령어 목적
Jenkins 패키지 저장소의 공개 키를 시스템에 추가하여 Jenkins 패키지를 안전하게 설치하고 업데이트할 수 있도록 하는 것이다.
❓오류 원인
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
OK
이렇게 결과가 나오는데 이 내용은 apt-key
명령어가 더 이상 권장되지 않으며 대신 trusted.gpg.d
디렉토리에서 키링 파일을 관리하라는 경고 메시지이다. 찾아보니 apt-key
는 예전에는 APT 패키지 관리 시스템에서 외부 저장소의 GPG 키를 관리하는 데 사용되었지만, 이제는 보안 문제와 관련된 여러 가지 이유로 권장되지 않는다고 한다.
✅ 오류 해결 방법 (시스템에 저장소 키 추가/ 데비안 패키지 저장소 주소 추가 내용은 오류 해결 방법이다!)
따라서 이 경고를 해결하려면 apt-key
대신 trusted.gpg.d
디렉토리를 사용하는 방법에 맞게 키를 추가해야 한다. 이를 위해 저장소 키를 직접 다운로드하고 해당 키를 trusted.gpg.d
디렉토리에 추가해야 한다. 저장소 키를 추가 후에는 저장소 주소를 /etc/apt/sources.list.d/
디렉토리에 저장소 정보를 담은 파일을 생성하여 추가해야 하고 APT 패키지 목록을 업데이트하여 변경 사항을 적용해야한다
echo deb https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.gpg
sudo apt-get update
화면에 보면 Key is stored in legacy trusted.
gpg keyring (/etc/apt/trusted.gpg)
내용을 찾아볼 수 있다.
sudo apt-get install jenkins
젠킨스 설치에 드디어 성공했다!!
sudo systemctl start jenkins
sudo systemctl stop jenkins
sudo systemctl restart jenkins
*systemctl
리눅스 명령어
서비스를 관리하는 데 사용되는 리눅스 명령어이다. 주로 "systemd"를 사용하는 시스템에서 사용된다. systemd는 대부분의 최신 리눅스 배포판에서 초기화 및 시스템 관리를 위해 사용되는 시스템 및 서비스 관리 프레임워크이다.
systemctl 명령어를 사용하여 다음과 같은 작업을 수행할 수 있다.
systemctl status [서비스 이름]
systemctl start [서비스 이름]
systemctl stop [서비스 이름]
ystemctl restart [서비스 이름]
systemctl enable [서비스 이름]
or systemctl disable [서비스 이름]
/var/log
디렉토리에 위치한다. 예를 들어, Apache의 경우 /var/log/apache2/error.log
에 오류 로그가 저장된다.journalctl
journalctl -b
journalctl -u [서비스 이름]
journalctl --since "yyyy-mm-dd HH:MM:SS" --until "yyyy-mm-dd HH:MM:SS"
systemctl list-unit-files
: 시스템에 설치된 유닛 파일 목록을 표시systemctl list-units
: 현재 실행 중인 모든 유닛의 상태 표시sudo systemctl status jenkins
결과