소프트웨어 소스 파일을 보관하기위한 표준 위치


16

예를 들어 대한 소스 파일을 보유하기위한 리눅스의 표준 위치 거기 는 OpenSSL . 기본 버전이 아닌 OpenSSL을 사용하여 소스에서 Nginx를 빌드하고 있습니다. OpenSSL을 다운로드하고 압축을 풀어야하며 홈 디렉토리에서 수행했습니다. 이제 리눅스에 표준 위치가 있는지 궁금합니다./opt .


1
terdon이 작성한 것처럼 / usr / src는 표준 위치이며 여기서는 커널 소스 (/ usr / src / linux-version에 연결된 / usr / src / linux) 및 예를 들어 X11의 디렉토리를 찾을 수 있습니다. 로컬 (/ usr / local)에 설치된 패키지의 소스 코드는 / usr / local / src에 더 적합합니다. "수동으로"패키지를 직접 빌드하려면 homedir에 src-directory를 작성하는 것이 좋습니다. 루트로 다운로드하거나 압축을 풀거나 빌드해서는 안됩니다. deb / rpm-packages를 빌드하는 경우 임시 빌드 디렉토리 (예 : / var / tmp)가 대신 사용됩니다. TBC
Baard Kopperud

패키지를 빌드 및 설치하거나 패키지 (rpm / dem)를 직접 만드는 경우에는 일반적으로 패키지를 설치 한 후 더 이상 소스 코드가 필요하지 않습니다. 커널 또는 X11과 같은 / usr / src (또는 로컬로 작성된 경우 / usr / local / src)에 일부 패키지의 소스 코드가있는 이유는 주로 필요한 경우 필요할 수 있기 때문입니다. 일부 소프트웨어 패키지를 직접 구축 (또는 작성) (예 : 실제 시스템 설정과 일치하는 커널의 모호한 헤더 파일) (물론, 커널을 직접 빌드하려면 필요합니다 ...) 그러나 이것은 몇몇 패키지에 적용됩니다.
Baard Kopperud

답변:


20

이와 같은 질문을 할 때마다 FHS ( Filesystem Hierarchy Standard)를 확인하십시오 .

usr / src : 소스 코드 (선택 사항)

목적

소스 코드는 참조 목적으로 만이 서브 디렉토리에 배치 될 수 있습니다.

따라서 소스 파일을의 하위 디렉토리에 넣을 수 있습니다 /usr/src. 즉, 이것은 선택적 디렉토리이므로 원하는 위치에 실제로 유지할 수 있습니다. 소스 코드는 실행 파일로 컴파일 한 후에는 관련이 없으므로 시스템은 특정 위치에서 액세스 할 수있는 소스를 요구하지 않습니다.

결론 : /usr/src꽤 표준적인 위치이지만 원하는 경우 자유롭게 선택할 수 있습니다.


6
그냥 당신이 알고 있어야 정말 장난하지 않으 /usr/srcA의 -linux 시스템. BSD는 기본 시스템 소스를 기본적으로 유지하며 타사 소프트웨어와 통합하지 않으려 고합니다. 그냥 당신의 $HOME어딘가에 구축 ...
Kusalananda

1
동일은 일부 하위 디렉토리에 적용 /usr/src특정 패키지가 설치되어있는 경우, 데비안 파생 상품 ( gcc-6-source, binutils-source, 패키지를 DKMS, 커널 헤더 등). 데비안에는 src을 소유 한 그룹 에 자신을 추가 /usr/src한 다음 필요에 sudo상관 없이 자신으로 쓸 수있는 멋진 기능이 있습니다 .
Stephen Kitt

그리고 페도라에, 당신은 만지지해야 /usr/src/debug하고 /usr/src/kernels(AFAICS).
Stephen Kitt

"소스 코드가 배치 될 수 있습니다". "장소"가 오타입니까, 아니면 뭔가 빠졌습니까?
Faheem Mitha

3
더 나아가서 /usr어떤 시스템에서도 실제로 손대지 말아야한다고 말합니다 . 에 물건을 넣어야합니다 /usr/local. BSD가 마음에 드 /usr/local/src십니까?
Muzer

13

/usr/local/src소스 코드를 유지하고 빌드하기에 안전한 장소입니다. FHS 는 말합니다 :

Directory   Description  
src         Local source code

그리고 또한

/ usr / local 계층은 소프트웨어를 로컬로 설치할 때 시스템 관리자가 사용합니다. 시스템 소프트웨어가 업데이트 될 때 덮어 쓰기되지 않도록 안전해야합니다.

"로컬 소스 코드"가 무엇을 의미하는지는 확실하지 않지만 시스템이 아무 것도 넣지 않을 것임은 분명합니다 /usr/local/src 와 달리/usr/src 때문에 코드를 넣는 데 단점이 거의없는 것 같습니다.

사실, 나는 별도의 파일 시스템을 가지고 있습니다.

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/data-local_src     79G   46G   30G  61% /usr/local/src

참고 : 적어도 데비안에서는 staff에 쓰 려면 사용자를 그룹에 추가해야합니다 /usr/local.


/usr/local/src다른 답변 만 토론 하는 동안 지적 +1/usr/src
MattSturgeon

"로컬 소스 코드"의 의미는 일반적 으로 배포가 아닌 로컬 sysadmin에 의해 제어 됨을 의미 합니다. 이론상 다른 모든 것과 동일 합니다. 본질적으로 그것은 당신이 묘사 한 것을 정확하게 의미합니다. /usr/local
MattSturgeon

9

"표준"이라는 말이 기존의 의미라면, 소스 코드를 풀고 빌드하는 곳은 홈 디렉토리입니다. 이러한 파일은 일시적이거나, 완료 될 때 삭제되거나, 원하는 경우 보관되지만 원하는대로 구성 될 수 있습니다. 홈 디렉토리는이 모든 종류의 것들을 가지고 노는 영역입니다.

나중에 참조 할 수 있도록 " 파일 시스템 계층 표준 "을 권장 /usr/src합니다. 그러나 이것은 법이 아닌 가이드입니다. 그리고 만약 당신이이 습관에 빠져 리눅스가 아닌 시스템에 투자한다면, 당신은 그것을 따르는 것에 의해 문제를 일으킬 수 있습니다. 예를 들어, BSD 시스템에서는 기본 시스템 소스가 그대로 유지되므로 실제로 소스 시스템을 엉망으로 만들고 싶지 않습니다. Linux에서도 패키지 관리자가 저장 한 소스와 섞일 위험이 있으므로 바람직하지 않습니다.

나는 /usr/src전체적으로 피하는 것이 좋습니다 . 거기에 무언가를 두는 것에는 분명한 이점이 없으며 의도 한 의미를 혼동하면 잠재적 위험이 없습니다.


5

/usr/src적당한 장소로 사용할 수 있으며 rpm 기반 배포판은이를 사용하여 srpm 패키지의 내용을 저장합니다. 그러나 다른 장소 같은 /opt, /usr/local, ~/src좋은입니다


"rpm 기반 배포판은이를 사용하여 srpm 패키지의 내용을 저장합니다." 이것이 바로 여러분이 자신의 비스트로 스트로 소스를 저장하지 말고 / usr / local을 사용해야하는 이유입니다. - "물건을 보관하기에 좋은 장소 여야합니다. 주변의 모든 지게차는 같은 의견 인 것 같습니다 ...."
rackandboneman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.