AWS

[AWS] AWS EC2에 mosquitto 설치하기

Uheeking 2024. 7. 23. 09:54
반응형

우선 운영체제마다 설치하는 법이 다른데 나의 경우 ec2안에 mosquitto를 설치하여 이를 broker로 사용하고자 하였다.

1. 버전확인하기

터미널을 열어 아래와 같은 명령어를 실행하였다.

hostnamectl
hostnamectl하면 나오는 화면
hostnamectl하면 나오는 화면

2. epel-release 설치하기

: 기업용 리눅스를 위한 추가 패키지, RHEL 이나 CentOS에 기본적으로 탑재되어있지 않는 패키지를 제공하기 위해 이런 패키지 저장소가 필요하다.

내 경우에는 자동으로 설치하는 것들이 다 작동이 안 되어 수동으로 설치하였다.

1) rpm 설치하기

wget <https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm>

2) 다운로드한 rpm 설치하기

sudo rpm -ivh epel-release-latest-7.noarch.rpm

설치를 했는데 아래와 같이 떴다.

rpm 설치 나오는 화면
rpm 설치 나오는 화면

그런데 자세히 보면 맨 아래에 —skip-broken 이라는 옵션을 쓰면 설치되지 못한 패키지를 스킵해준다고 되어 있어서 위의 명령어에 해당 옵션만 추가하여 다시 설치해주었다.

sudo rpm -ivh epel-release-latest-7.noarch.rpm --skip-broken

그랬더니 제대로 설치되었다.

2-1)

만약 위의 방법이 안되면 아래의 방법을 이용한다.

sudo yum install epel-release --skip-broken

3. mosquitto 설치하기

sudo yum -y install mosquitto --skip-broken

mosquitto를 설치해준다.

3-1)

위의 방법이 안 될 경우에 아래의 방법을 적용한다.

1. 소스코드 다운로드 및 추출

wget <https://mosquitto.org/files/source/mosquitto-1.6.10.tar.gz>
tar xvzf mosquitto-1.6.10.tar.gz
cd mosquitto-1.6.10

2. 컴파일 및 설치

sudo make
sudo make install

3. 작동하고 있는지 확인

sudo systemctl status mosquitto

내 경우 계속 status가 failed로 떴는데 이를 무시하고

mosquitto_sub -d -t my-topic

topic이 날려지는지 확인하였다. 그랬더니 잘 안되어서 해당 오류를 해결하고자 하였다.

4. 오류 해결하기

1) Mosquitto 라이브러리가 설치되어 있는지 확인

sudo yum list installed | grep mosquitto

설치되지 않았다면 다시 설치해준다.

sudo yum install mosquitto

2) libmosquitto.so.1 파일 찾기

sudo find / -name "libmosquitto.so.1"

3) 라이브러리 캐시 업데이트하기

sudo ldconfig

시스템이 새로 설치된 라이브러리를 인식하지 못할 수 있으므로, 라이브러리 캐시를 업데이트하여 새 라이브러리를 포함시킨다.

4) 심볼릭 링크 생성하기

sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib64/libmosquitto.so.1

libmosquitto.so.1예상한 것과 다른 디렉토리에서 발견된 경우 mosquitto_sub, 발견된 실제 위치에 대한 심볼릭 링크를 만든다.

위에서 출력된 find로 발견된 파일 위치를 가져와 /usr/local/lib/libmosquitto.so.1에서 발견된 파일 위치로 변경하여 적용해준다.

5) mosquitto_sub명령 확인

mosquitto_sub --help

이 명령을 실행하면 도움말 정보가 표시되어 mosquitto_sub해당 명령이 이제 필요한 라이브러리를 찾을 수 있음을 나타낸다.

👇🏻 참고 사이트

https://dabeen.medium.com/epel-2e630beba5f9

https://gsk121.tistory.com/416

https://1mini2.tistory.com/127

https://realyun99.tistory.com/158

https://sssbin.tistory.com/186

반응형