설치된 소프트웨어는 Linux에 어디에 저장됩니까?

설치된 소프트웨어는 Linux에 어디에 저장됩니까?

가능한 중복:
일반적인 Linux 프로그램은 어디에 설치되어 있나요?

저는 Linux를 처음 접했고 패키지에 대해 좀 더 물어보고 싶습니다.

Windows에서는 .exe파일을 다운로드하여 설치합니다. 설치할 때 해당 애플리케이션을 저장할 경로를 정의합니다. 해당 폴더에는 응용 프로그램에 필요한 모든 파일이 있습니다.

yum그런데 Linux에서 또는 를 사용하여 패키지를 설치할 때 apt-get패키지가 어디에 설치되어 있는지, 해당 응용 프로그램에 필요한 파일이 어디에 저장되어 있는지 알 수 없습니다. 나는 대부분의 구성이 디렉토리에 있다는 것을 보았습니다 /etc. 그런데 Linux가 애플리케이션에 필요한 파일을 다른 디렉터리에 저장하는 이유는 무엇입니까?

패키지가 어떻게 설치되고 어디에 어떻게 저장되는지 알려주실 수 있나요? 그리고 패키지 관리에 대한 저의 이해가 잘못된 경우 정정해 주시기 바랍니다.

답변1

이미 언급한 것처럼 많은 프로그램(바이너리/스크립트)은 다양한 구성 디렉터리(종종 내부/아래)의 다른 부분에 있거나 다른 부분과 함께 /bin존재 합니다./usr/binetc

특정 명령에 대해서는 체크아웃할 수 있습니다.어디에

whereis prog_name

그러면 이 명령을 찾을 수 있는 위치에 대한 정보가 제공됩니다. 당신은 또한 시도할 수 있습니다어느

which prog_name

또한, 이그래픽 및 설명/예제도움이 될 수 있습니다.

답변2

yum다음을 수행하여 특정 패키지가 설치하는 파일 목록을 얻을 수 있습니다 .

yum install yum-utils

그런 다음 다음과 같이 실행할 수 있습니다.

repoquery --list yum-utils

(물론 두 번째 항목의 "yum-utils"를 보려는 파일 목록이 있는 패키지 이름으로 바꾸십시오.)

의 경우 다음 apt-get을 사용할 수 있습니다.

dpkg -L package-name

답변3

Windows, 특히 이전 버전에서는 프로그램이 구성 파일과 일정하지 않은 데이터를 디렉터리에 저장하는 것이 일반적이었습니다 C:\Program Files. 이는 네트워크에 연결되지 않은 단일 사용자, 파일 권한이 없는 DOS에서 프로그램이 일반적으로 설치되고 실행되는 방식에서 파생됩니다.

보안 관점에서 볼 때 이는 나쁜 생각입니다. 실행 가능한 코드가 있는 장소는 수정 가능한 데이터와 분리되어야 합니다. 이렇게 하면 권한 없는 사용자가 설치된 바이너리를 수정하는 것을 방지하기 위해 적절한 파일 권한을 적용하는 것이 더 쉽습니다. 마찬가지로 기본 실행 파일과 별도로 업데이트될 수 있는 라이브러리 디렉터리도 별도의 디렉터리에 있어야 합니다.

Vista와 UAC의 문제점으로 인해 이러한 전통은 마침내 견인력을 심각하게 잃기 시작했습니다.

훨씬 일찍부터 다중 사용자 시스템이었던 UNIX와 Linux는 루트 이외의 사용자가 설치된 바이너리를 수정하는 것을 방지할 필요가 있었기 때문에 실행 가능한 디렉터리를 다른 디렉터리와 훨씬 일찍 분리하는 경향이 있었습니다. 이는 또한 별도의 파티션인 이유이기도 /usr하며 /sbin때로는 별도의 파티션이기도 합니다. 특히 보안에 민감한 관리자는 해당 파티션을 읽기 전용으로 마운트하고 설치/제거가 필요할 때 읽기/쓰기로 다시 마운트할 수 있습니다.

패키지는 일반적으로 패키지 관리자에서 설치됩니다. aptitude(Debian 및 파생 배포판), yum(Redhat 및 파생 배포판), pacman(어떤 배포판인지 잊어버리세요...) 등과 같은 다양한 패키지 관리자가 있습니다 .

패키지 관리자를 사용하면 정교한 (무료) "앱 스토어"와 마찬가지로 리포지토리를 탐색하고, 소프트웨어를 다운로드, 설치, 쿼리 및 제거할 수 있습니다. 종속성을 처리하고 현재 설치된 항목을 추적하는 책임을 맡습니다.

일반적으로 패키지 관리자는 리포지토리 외부에서 수동으로 다운로드한 패키지에 대해 동일한 작업을 허용합니다. 직접 만들거나 컴파일한 소프트웨어로 자신만의 소프트웨어를 만들고 싶은 경우에도 도구를 사용할 수 있습니다.

패키지 자체는 실행 파일이 아니기 때문에 실제로 무엇을 하는지 모르는 신뢰할 수 없는 실행 파일을 실행할 필요가 없습니다. (Windows는 마침내 's .msu대신 's를 배포하여 업데이트를 제공하고 있습니다. .exe하지만 .msi's는 한동안 사용되어 왔습니다...)

답변4

Linux/Unix에서 대부분의 프로그램은 일반적으로 단일 디렉토리로 끝나지 않지만, 디렉토리의 다른 부분(실행 파일, 구성 파일, 로그 파일, 문서, 기타 리소스)은 일반적으로 심볼릭 링크를 통해 파일 시스템 전체에 분산됩니다. 그만큼위키피디아 기사일반적인 파일 시스템 계층 구조 아래의 표준 디렉터리 구조를 더 자세히 설명하고 다양한 디렉터리와 각 디렉터리에서 찾을 수 있는 내용을 보여줍니다.

관련 정보