본문 바로가기
컴퓨터 활용(한글, 오피스 등)/50_2.운영체제_리눅스

리눅스 패키지 소스 컴파일 하는 경우 의존성 파일 없는 경우 조치 방법

by 3604 2023. 12. 3.
728x90

apache 소스 컴파일 하는 경우 의존성 파일 없는 경우 조치 방법

 

CentOS 7 : GCC Compiler 설치 방법, 예제, 명령어

출처: https://jjeongil.tistory.com/1619

GCC(GNU 컴파일러 컬렉션)는 프로그래밍 언어인 C, C++, Objective-C, Fortran, Ada, Go 및 D에 대한 컴파일러 및 라이브러리의 모음입니다. GNU 도구와 리눅스 커널을 포함한 많은 오픈 소스 프로젝트가 GCC와 함께 컴파일됩니다.

CentOS 7에 GCC 컴파일러를 설치하는 방법을 설명합니다. SCL 저장소에서 사용할 수 있는 최신 버전의 GCC와 분산 버전을 설치하는 방법을 설명합니다.

 

필수 조건

Cent에 새 저장소를 추가하고 패키지를 설치하려면 다음과 같이 하십시오.OS 시스템에서 sudo 권한을 가진 루트 또는 사용자로 로그인해야 합니다.

 

 

 

CenOSt에 GCC를 설치

기본 센트입니다.OS 리포지토리에는 GCC 컴파일러와 소프트웨어를 컴파일하는 데 필요한 많은 라이브러리 및 기타 유틸리티가 포함된 개발 도구라는 패키지 그룹이 포함되어 있습니다.

GCC 컴파일러를 포함하여 개발 도구를 설치하려면 다음을 실행합니다.

sudo yum group install "Development Tools"

 

 

이 명령은 gcc, g++ 및 make를 포함한 여러 새 패키지를 설치합니다.

개발을 위해 GNU/리눅스 사용에 대한 설명서 페이지를 설치할 수도 있습니다.

sudo yum install man-pages

 

 

GCC 버전을 인쇄하는 gcc --version 명령을 사용하여 GCC 컴파일러가 성공적으로 설치되었는지 확인합니다.

GCC의 기본 버전은 CentOS 7 저장소는 4.8.5에서 사용할 수 있습니다..

gcc --version

# gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
# Copyright (C) 2015 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions.  There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

 

이제 GCC가 시스템에 설치되었으며 GCC를 사용할 수 있습니다.

 

 

 

Hello World 예제를 컴파일

GCC를 이용하여 기본 C 또는 C++ 프로그램을 편성하는 것은 쉬운 작업입니다. 텍스트 편집기를 열고 다음 파일을 생성하십시오.

# hello.c

#include <stdio.h>
int main()
{
  printf ("Hello World!\n");
  return 0;
}

 

다음 명령을 실행하여 파일을 저장하고 실행 파일로 컴파일하십시오.

gcc hello.c -o hello

 

그러면 명령을 실행하는 디렉터리에 hello라는 이진 파일이 생성됩니다.

다음을 사용하여 Hello 프로그램을 실행합니다.

프로그램에 다음이 표시되어야 합니다.

./hello

# Hello World!

 

여러 GCC 버전을 설치

이 섹션에서는 CentOS 7에 여러 버전의 GCC를 설치하고 사용하는 방법에 대한 지침을 제공합니다. 최신 버전의 GCC 컴파일러는 새로운 언어, 향상된 성능, 확장된 기능을 지원합니다.

SCL이라고도 하는 소프트웨어 컬렉션은 시스템 기본 패키지에 영향을 주지 않고 동일한 시스템에 여러 버전의 소프트웨어를 구축, 설치 및 사용할 수 있는 커뮤니티 프로젝트입니다. 소프트웨어 수집을 실행하면 핵심 리포지토리에서 사용할 수 없는 최신 버전의 프로그래밍 언어 및 서비스에 액세스할 수 있습니다.

SCL 저장소는 최신 버전의 GNU 컴파일러 컬렉션과 기타 개발 및 디버깅 도구를 포함하는 개발자 도구 세트라는 패키지를 제공합니다.

먼저 CentOS SCL 릴리스 파일을 설치합니다. 그것은 센트OS 추가 저장소이며 다음 명령을 실행하여 설치할 수 있습니다.

sudo yum install centos-release-scl

 

 

현재 다음과 같은 개발자 도구 집합 컬렉션을 사용할 수 있습니다.

- 개발자 도구 세트 7입니다.

- 개발자 도구 세트 6입니다.

 

이 예에서는 Developer Toolset 버전 7을 설치합니다. 그렇게 하려면 CentOS 7 터미널에 다음 명령을 입력하십시오.

sudo yum install devtoolset-7

 

 

GCC 버전 7에 액세스하려면 소프트웨어 컬렉션 scl 도구를 사용하여 새 셸 인스턴스를 시작해야 합니다.

scl enable devtoolset-7 bash

 

 

이제 GCC 버전을 확인하면 GCC 7이 현재 셸의 기본 버전임을 알 수 있습니다.

gcc --version

# gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
# Copyright (C) 2017 Free Software Foundation, Inc.
# This is free software; see the source for copying conditions.  There is NO
# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 

 

이 때 다른 일반 도구와 마찬가지로 최신 GCC 버전을 사용할 수 있습니다.

CentOS 7에 GCC를 설치했습니다. 이제 공식 GCC 설명서 페이지를 방문하여 GCC 및 G++를 사용하여 C 및 C++ 프로그램을 컴파일하는 방법을 배울 수 있습니다.

 

[CentOS] Error message, This system is not registered with an entitlement server.

출처: https://bluemir7.tistory.com/140 [♨ 미르의 널부러진 세상~*:티스토리]

CentOS 7 사용 중에 update 를 위하여 yum update 를 실행 하였을 시에 아래와 같은 오류 메시지와 함께 정상 동작하지 않는 현상이 발생하는 경우가 있습니다.

 

$> yum update

=> This system is not registered with an entitlement server. You can use subscrition-manager to register.

 

 

 

구글을 통해 찾아본 결과, 이 경우에는

yum 의 repository 에 오래 되었거나, 맞지 않는 repository 가 설정되어 있는 경우 발생할 수 있다고 합니다.

 

해결책으로 제시하고 있는 것 중,

 

1.

    /etc/yum/pluginconf.d/subscription-manager.conf 의 enabled=1 값을

    enabled=0 으로 변경한 후 아래의 명령을 차례로 실행 합니다.

     $> yum repolist all

     $> yum clean all

    명령 실행 후 yum update 를 진행하면 된다고 하여 설정해 보았으나,

    동일하게 메시지 출력과 함께 진행되지 않았습니다.

 

2.

    1번과 같이 진행 하였을 경우에도 정상 실행되지 않는다면, /etc/yum.repos.d 의 파일들을 확인해 보아야 합니다.

    실제, OS를 사용하다 보면 여러 repository 를 등록하게 되는데,

    오류가 발생한 경우에는 OS 기본 repo 파일들을 제외한 후 진행 하여야 하며,

      $> yum repolist all

      $> yum clean all

    만약, OS 기본 repo 파일들만 남겨두고 yum update 를 진행 하였을 시에도 동일 하다면,

    기본 repo 파일의 주소 값이 맞지 않아서 일 수도 있습니다.

  

    repo 재 설치 할 경우,

    현재 설치된 CentOS 버전 확인 후

      cf) CentOS 버전 확인

          cat /etc/centos-release

    설치된 버전이 "CentOS Linux release 7.9.2009 (Core)" 라고 할 경우,

    $> wget http://ftp.osuosl.org/pub/centos/7.9.2009/updates/x86_64/Packages/centos-release-7-9.2009.1.el7.centos.x86_64.rpm

    $> rm -rf /etc/yum.repos.d/*

    $> rpm -ivh --reinstall ./centos-release-7-9.2009.1.el7.centos.x86_64.rpm

 

 

    $> ls /etc/yum.repos.d/

 

 

    $> yum --enablerepo=* clean all

    $> yum repolist all

    $> yum check-update

     

    만약, mirrorlist.centos.org 을 통하여 정상 동작 되지 않는다면,

    아래의 baseurl 을 아래의 주소로 변경해보는 것도 좋을 것 같습니다.

   

    vi /etc/yum.repos.d/CentOS-Base.repo   

[base]
baseurl=https://mirror.kakao.com/centos/centos/$releasever/os/$basearch/

[updates]
baseurl=https://mirror.kakao.com/centos/$releasever/updates/$basearch/

[extras]
baseurl=https://mirror.kakao.com/centos/$releasever/extras/$basearch/

[centosplus]
baseurl=https://mirror.kakao.com/centos/$releasever/centosplus/$basearch/

[contrib]
baseurl=https://mirror.kakao.com/centos/$releasever/contrib/$basearch/

 

그리고, yum repolist all 명령을 실행 할 경우, 결과 내용 상단에 "Determining fastest mirrors" 블럭이 먼저 표시되는데,

찾아진 url 이 있다면 해당 주소의 정보 확인 후 repo 의 baseurl 을 변경 해주면 좀더 빠르게 설치 및 업데이트를 받을 수 있습니다.

 

 

 

저의 경우에는 1번과 같이 하였을 경우에 동일한 증상이었으며 2번에서 기본 repo 만 남겨두고 확인 하였을 경우에는 yum install/update 명령은 정상 동작 하였었으나, 일부 새로운 패키지를 설치하거나 하려 하다보니 yum 을 통하여 패키지 정보를 정상적으로 받아오지 못하고 있었습니다.

이에, 2번과 에서 repo 정보를 재 설치 하는 형태로 하였을 경우에 패키지 정보를 다시 제대로 받아와서 필요한 패키지를 설치 할 수 있게 되었었습니다.

출처: https://bluemir7.tistory.com/140 [♨ 미르의 널부러진 세상~*:티스토리]

 

[Linux] 리눅스 yum 오류 Another app is currently holding the yum lock; waiting for it to exit...

리눅스(Linux)에서 yum을 실행하다 보면 아래 그림과 같은 오류가 날때가 있습니다.

방법은 간단합니다. 현재 사용중인 프로세스를 제거하거나 실행중인 yum을 제거하면 됩니다.

 

yum 오류

 

1) 해결책 1 : yum 프로세스 죽이기

# ps -ef | grep yum

# kill -9 4602

 

 

2) 해결책 2 : yum.pid 파일 제거

# rm -rf /var/run/yum.pid

 

 

 

yum의 오류 문제를 해결했을때 yum 관련된 명령어를 실행하면 문제없이

잘 수행 됩니다.

 

 

CentOS 7 : GCC Compiler 설치 방법, 예제, 명령어

CentOS 7 : GCC Compiler 설치 방법, 예제, 명령어

728x90