리눅스에서 어디에 넣을지를 어떻게 알 수 있습니까?


58

창에 무언가를 설치하려면 버튼을 클릭하십시오. 그러나 APT에서 찾을 수없는 Linux에 무언가를 설치하려고 할 때마다 혼란 스럽습니다.

압축 된 폴더를 다운로드하면 어떻게됩니까? 운이 좋으면 README가 있는데, 운이 좋으면 도움이 될만한 문서를 참조하십시오.

APT에없는 확장 프로그램과 응용 프로그램을 "설치"할 때의 마술은 무엇입니까?

나는 리눅스를 좋아하지만이 문제는 매일 나를 괴롭힌다.



8
주제를 벗어. 그러나 간단한 트릭은 패키지 관리 시스템 외부에 아무것도 설치하지 않는 것입니다.
Let_Me_Be

1
APT가 아닌 경우 아마도 설치할 수있는 것이 아닐 수도 있습니다-직접 컴파일하고 설치해야합니다. 그런 다음 APT 기반 패키지와 혼동되기 시작합니다. APT / .deb를 가능한 한 필요한 곳에서 찾는 것이 가장 간단합니다.
Rup

2
소프트웨어에 deb 패키지가없는 경우 @Rup Plus는 더 이상 사용되지 않거나 최신 버전이거나 apt 기반 배포판과 호환되지 않기 때문에 설치하지 않아야합니다.
Let_Me_Be

3
소프트웨어 빌드 / 설치에 대한 충분한 경험이 있으면 자신 만의 패키지를 만들 수 있습니다. 업스트림 제공 업체에 피드백을 제공하십시오!
jsbillings

답변:


32

그것은 순종 소프트웨어의 경우 파일 시스템 계층 구조 표준을 당신이에 배치해야보다 /usr/local적절한 하위 디렉토리 (같은 bin, lib, share, ...).

다른 소프트웨어는 아래의 자체 디렉토리에 있어야합니다 /opt. 그런 다음 디렉토리 또는 실행 파일이 들어 PATH있는 bin디렉토리 를 포함하도록 변수를 설정 하거나에 대한 심볼릭 링크를 만듭니다 /usr/local/bin.


1
좋은 대답이지만 실제로는 매일 그렇게 할 필요는 없습니다.
phunehehe

1
@phunehehe-매일해야합니까?
Rob

3
아니요, 저는 OP의 "이 문제는 매일 저를 괴롭 힙니다"를 언급하고있었습니다.
phunehehe

1
FHS에 대한 wikipedia 링크 외에도 pathname.com/fhs/pub/fhs-2.3.html을 읽으십시오 . "목적"섹션을 읽으십시오.
yasouser

27

이 질문에 대한 간단한 대답은 없지만 작동 방식에 대한 일반적인 개요를 알려줄 수 있습니다.

대부분의 Linux 소프트웨어는 저자 ( "업스트림")가 소스 코드 형식으로 제공합니다. 이를 통해 특정 플랫폼 및 시스템 구성을위한 컴파일러가있는 모든 사람이 소스 코드를 다운로드하여 스스로 컴파일 할 수 있습니다. 불행하게도 많은 프로그램은 다른 프로그램과 소프트웨어 라이브러리 (종속성)가 제공하는 기능에 의존합니다.

Windows 소프트웨어는 일반적으로 사전 컴파일 된 형태로 제공됩니다. 즉, 모든 Windows 컴퓨터에 대해 하나의 일반 실행 파일이 있으며 종속성은 종종 설치 패키지에 함께 제공됩니다.

Linux 배포판은 소스 코드를 가져 와서 미리 컴파일하여 패키지로 제공합니다. 패키지에는 종속성이 포함되어 있지 않지만 패키지를 참조하여 패키지 시스템을 강제로 설치해야합니다 (종종 이미 경험했던 엉망으로 이어질 수 있음).

사전 컴파일 된 패키지가없는 경우 언제든지 소스 코드를 다운로드하여 직접 컴파일 할 수 있습니다. 대부분의 경우 다음이 작동합니다.

./configure
make
(sudo) make install (or sudo checkinstall)

./configure 줄은 컴파일 프로세스의 단계를 설정합니다 (종속성이 충족되지 않으면 오류가 발생합니다). make 행은 프로그램의 모든 부분을 컴파일하는 스크립트 인 Makefile을 실행합니다.

일반적으로 make install을 사용하여 소프트웨어를 설치합니다. 이것은 보통 실행 파일을 / usr / local / bin에 넣습니다.

apt를 사용하고 있으므로 checkinstall을 사용하는 것이 좋습니다. make install 대신 사용할 수 있으며 .deb 패키지가 생성됩니다. 따라서 나중에 소프트웨어를보다 쉽게 ​​제거 할 수 있습니다.

cmake와 같은 소수의 다른 컴파일 시스템이 있습니다. 일부 소프트웨어는 사전 컴파일되었지만 패키지화되지 않은 상태로 제공됩니다 (이 경우 압축 해제 된 폴더에서 바로 시작할 수 있음). 일부 소프트웨어는 스스로 실행해야하는 스크립트 모음으로 제공됩니다. SVN의 새로운 코드는 구성 스크립트가없는 경우가 종종 있으므로 autoconf 툴 체인을 먼저 실행해야합니다 ... 등 ... 규칙에 많은 예외가 있지만 약간의 경험 만 있으면 경험할 수 있습니다 신비한 다운로드의 대부분을 어떻게 처리해야하는지 알려주세요. Configure-Make-Checkinstall은 좋은 시작입니다.

추신. 자신을 프로그래밍하는 방법을 배우기 위해 주말에 두세 시간을 보내면 상황이 분명해질 것입니다 :-)

PPS. Linux 소프트웨어 제작자가 소스 코드 대신 사전 컴파일 된 패키지를 제공하지 않는 이유가 궁금 할 수 있습니다. 글쎄, 그들은 때때로합니다. 그러나 다른 플랫폼과 Linux 배포판에는 모두 자체 패키지 형식과 파일 시스템 규칙이 있으므로 개발자는 가능한 모든 구성에 대해 패키지를 제공해야합니다. 우분투 패키지는 종종 가장 쉽게 찾을 수 있습니다. PPA가 무엇이며 어떻게 작동하는지 알아야합니다!


1
"PS. 자신을 프로그래밍하는 방법을 배우기 위해 주말에 이틀을 보내십시오. 그렇지 않으면 훌륭한 답변의 나쁜 조언. 사람들에게 리눅스를 이해하도록 프로그램하도록 요청하는 것은 비행기를 수리하는 항공사 승객과 같습니다.
apoorv020

프로그래밍 대신 LFS (처음부터 리눅스)와 같은 자신의 리눅스를 컴파일하도록 변경하십시오. linuxfromscratch.org
jsolarski

@apoorv, 포인트를 가져갔습니다. :)
sebastian_k

4

checkinstall을 확인해야합니다 . 대신에

./configure
make
sudo make install

당신은

./configure
make
sudo make checkinstall

apt를 통해 설치 한 것처럼 해당 패키지를 관리 할 수 ​​있습니다.


@sebastian_k가 이미 checkinstall을 언급했음을 알았습니다.
mgalgs

1

이것이 혼란스럽고 합리적이며 합리적 인 이유가 있습니다 (성가신 유물 이유도 있습니다) ...

유닉스는 다중 사용자의 역사를 가지고 있으며 대부분의 사용자는 특정 액세스 권한이 부여 된 영역 외부에 앱을 설치할 수 없습니다.

따라서 이론은 홈 디렉토리에 무언가를 만든 다음 자신이 제어했던 영역 (자신의 프로젝트 영역 또는 공유 영역)에 복사한다는 이론입니다.

Windows PC는 일반적으로 단일 사용자 시스템이며 이러한 제약이 없으므로 모든 것이 프로그램 파일에 포함됩니다.

그런 다음 새로운 버전의 유닉스가 나올 때마다 제작자들이 위치를 바꿔야한다는 느낌을 받았지만 오래된 스크립트는 여전히 자동화 된 스크립트를 위해 존재해야한다는 어리 석고 성가신 사실이 있습니다. 이것은 동일한 목적을 제공하는 많은 링크 된 디렉토리를 제공합니다.

초기화 시스템은 훨씬 더 나쁩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.