fedora linux 관련 문제

appstew·2022년 11월 6일
0

일기

목록 보기
2/2

처음에는 우분투 를 처음 접하였고 이후 fedora linux(현재는 fedora 36 workstation) 를 가상화와 기타 작업용으로 사용하면서 맘에 들었는데 처음 자바 백엔드 과정으로 웹개발을 시작하면서 많이들 쓰는 맥과 윈도우와는 정말 크고 작은 차이가 다수 발생했고 학습을 진행하면서 이 문제들을 해결하는데 짧게는 몇분~ 길게는 몇일을 소비하느라 정작 백엔드 학습을 못하는 경우도 많았다.

심지어는 개중 도저히 방법을 찾을 수 없어 포기한 것들도 있다..
이번 자바 백엔드 과정을 fedora linux 로 진행하면서 발생했던 문제, 해결과정, 또는 우회방법 등은 밑에 정리.

아무튼 혼자 학습하는 동안에는 이 문제들을 해결하는 것도 공부니까 뭐..라고 여유롭게 생각했는데

이번에 pre-project 로 완전 실무와 같은 방식으로 stackoverflow 를 6명과 협업하고 취업준비기간이 다가오면서 마음이 급해지고 이렇게는 안되는구나..맥을 써야하는구나.. 라는 것을 너무 절실히 느꼈다. 웹개발자 다수가 맥을 사용하고 있고 그에 맞춰져서 많은 자료들이 있고 피드백도 많지만 페도라 리눅스는 오픈소스에다가 워낙 마이너하고 이쪽 분야에서 그리 많이 쓰이는 것 같지는 않기도 하고 아무튼..

기억나는대로 그때그때 추가하기로 하자.

  1. 인텔리제이에서 springboot 을 실행하거나 java -jar 모두 application.yml 의 ${secret-key} 와 같은 환경 변수를 읽어오지 못했다. ~/.bashrc ~/.bashprofile ~/.zshrc 와 씨름하고
    터미널에서는 echo 로 그 환경변수 값을 너무나 잘 불러오는데, springboot app 을 실행시
coudln't resolve 'secret-key' value in ${secret-key}
//정확히 기억은 안나지만 대충 이런 에러메시지가 나오면서 실행이 안된다.

와 같은 메시지가 나오면서 실행이 안되는 것이 답답하고 이해가 가지 않아 구글링도 엄청 했지만, 해결 방법은 찾지 못했다. 다른 리눅스 들은 테스트해보지 않았지만 아마 왠만하면 될 것이다.

이것때문에 며칠을 허비하고 이번 프로젝트 기간에 마침내 포기하고 그냥 intellij 상에서 edit configuration>environment variable 에 secret-key=neikfnoaeijfsoleijfei 와 같은 식으로 추가해서 사용하는 것으로 타협을 보았다..

  1. docker 관련 문제
    이것도 해결은 보았지만 다소 짜증나는 것은 사실이다.
    docker-desktop 과 docker-cli 이 윈도우와 맥에서는 어떻게 최적화가 잘 되어 있는데 공식홈 참고하여 추가설정하여 해결 가능하였다.

다음은 예전 docker 공식 document 이다.


Differences between Docker Desktop for Linux and Docker Engine

-https://docs.docker.com/desktop/install/linux-install/

  • While it’s possible to run both Docker Desktop and Docker Engine simultaneously, there may be situations where running both at the same time can cause issues. For example, when mapping network ports (-p / --publish) for containers, both Docker Desktop and Docker Engine may attempt to reserve the same port on your machine, which can lead to conflicts (“port already in use”).

sudo systemctl stop docker docker.socket containerd

sudo systemctl disable docker docker.socket containerd

Switch between Docker Desktop and Docker Engine

docker context ls

If you have both Docker Desktop and Docker Engine installed on the same machine, you can run the docker context use command to switch between the Docker Desktop and Docker Engine contexts. For example, use the “default” context to interact with the Docker Engine;

docker context use desktop-linux

sudo rm /usr/local/bin/docker


// 현재 /usr/bin/docker 를 쓰고 있고 sudo 없이 docker-desktop(gui) 및 /var/run/docker.sock 이 아닌 ~/.docker/desktop/docker.sock 으로 잘 실행된다.

docker 명령으로 하면 docker desktop 과 연동되어서 실행되고
sudo docker 명령으로 하면 docker desktop 과 연동도 안되고 나중에 port 가 이중으로 실행된다거나 container, volume 을 관리하는 폴더도 다르고 문제가 생긴다.

더 자세히 알기 전까지 일단은 sudo 없이 써야겠다.

https://docs.docker.com/engine/security/rootless/

  1. 맥에서는 apachectl, fedora 에서는 httpd
    이건 문제까지는 아니지만 아무튼 명령어랑 파일 이름, documentRoot 경로 등, 여러가지가 다르다.
profile
소프트웨어엔지니어가 되기 위해 달리는 중

0개의 댓글