Ubuntu에 프로그램을 설치할 위치와 기존 프로그램이 설치된 위치를 알려주는 방법은 무엇입니까?


10

나는 현재 Ubuntu Server를 사용하여 Ubuntu / Linux에 완전히 익숙하지 않습니다. 기본적인 것을 알아 내려고 노력했습니다.

프로그램 설치 위치를 어떻게 알 수 있습니까? 예를 들어, 사이트에서 다운로드 한 tarball을 내 사이트에 배치하여 Sphinx 검색 엔진을 설치했습니다.

/home/sphinx

예배 규칙서. tarball을 넣을 스핑크스 디렉토리를 만들었습니다. 그런 다음 다음 명령을 실행했습니다.

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

그런 다음

make
sudo make install

이제이 명령을 실행 한 디렉토리에 많은 파일이 있습니다. 이것이 내 Spynx 설치입니까 아니면 다른 곳에 설치 되었습니까?

Windows에서 설치 프로그램 (.exe 파일)을 실행하면 프로그램은 여전히 ​​C : \ Program Files 디렉토리에 설치됩니다. 모든 프로그램이 중앙 위치에 설치되거나 시스템의 어느 위치 에나 프로그램을 설치할 수있는 Linux에 비슷한 것이 적용됩니다.

질문

  1. 설치된 모든 프로그램을 한 곳에 보관하여 모범 사례 측면에서 올바른 위치를 유지하는 것이 좋습니다. 다시 말해서 리눅스가 C : \ Program Files에 해당하는 것은 무엇입니까?

  2. 그리고 어떻게 항상이 위치에 설치합니까, tarball을 설치하고이 위치에서 설치 명령을 실행하는 것입니까?

  3. sudo apt-get을 사용하여 패키지를 설치하면 어떨까요? apt-get에 항상 설치하도록 알리려면 어떻게이 위치를 가리킬 수 있습니까?

답변:


15

모든 프로그램이 중앙에 설치되어있는 리눅스에도 비슷한 기능이 있습니까?

Linux의 대략적인 Windows 설치 디렉토리

  • \Windows = /bin
  • \Windows\System32= /lib와/sbin
  • \Program Files= /usr/bin와/usr/lib

설치된 모든 프로그램을 한 곳에 보관하여 모범 사례 측면에서 올바른 위치를 유지하는 것이 좋습니다. 다시 말해서 리눅스가 C : \ Program Files에 해당하는 것은 무엇입니까?

이 디렉토리는 /usr, 특히 /usr/bin및 아래에있는 디렉토리 /usr/lib입니다.

그리고 어떻게 항상이 위치에 설치합니까, tarball을 설치하고이 위치에서 설치 명령을 실행하는 것입니까?

  • 번호 는 설치 명령 거의 결코 문제를 실행할 때이 곳.

  • apt-get(또는 aptitude) 를 통해 설치 한 프로그램 은 거의 항상로 끝납니다 /usr. 하지만 프로그램은 소스에서 컴파일하고 make install더 자주에 종료됩니다 /usr/local/bin, /usr/local/lib등, 데비안 / 우분투에서 사용자가 설치 한 경로이기 때문에 당신은 그와 함께 문제가있을 수 있습니다 /usr하지 /usr/local.

  • 소스에서 컴파일 할 때이 스위치를 추가하여 다음을 구성하십시오 ./configure --prefix=/usr.. 이렇게 make install하면 파일이 올바른 디렉토리에있게됩니다.

  • 또한 checkinstall소스 설치에서 컴파일 된 패키지 파일을 추적하고 deb 파일을 만들고 쉽게 제거 / 재설치 할 수 있는 프로그램을 살펴보십시오 .

sudo apt-get을 사용하여 패키지를 설치하면 어떨까요? apt-get에 항상 설치하도록 알리려면 어떻게이 위치를 가리킬 수 있습니까?

apt-get/ dpkg이것을 자동으로 처리하십시오. dpkg -L name-of-package패키지로 설치 한 모든 파일과 설치 위치를 보는 데 사용할 수 있습니다 .


자세한 답변, 하나의 질문에 감사드립니다. "아니요. 설치 명령을 실행할 때 위치는 거의 중요하지 않습니다."라고 말 했으므로 이제 프로그램을 설치 했으므로 tarball에서 추출한 / home / sphinx /에서 Sphinx 폴더를 안전하게 삭제할 수 있습니다 설치를 실행하고 명령을 내렸습니까? 이것은 현재 프로그램을 설치하기 위해 이미 실행 한 설치 프로그램과 동일합니까?
— JakeRow123

1
예, tarball에서 추출한 폴더를 삭제할 수 있습니다. 이는 기본적으로 설치 프로그램이 추출 된 "temp"폴더와 같으며 이제는 쓸모가 없습니다. 좋은 질문이었습니다.이 정보를 포함하도록 답변을 편집하겠습니다.
— ish

할 수는 있지만 'make uninstall'으로 문제를 제거하는 데 문제가 있습니다. 데비안 / 우분투에서는 접두사 / 또는 / usr에 소프트웨어를 설치해서는 안되며 / usr / local을 사용해야합니다. 왜 로컬 관리자를 위해 / usr / local이 생성 되었기 때문에 자체 프로그램을 설치하기 위해 JakeRow123입니다. / 및 / usr은 데비안 패키지 전용입니다. 거기에 설치하면 문제가 발생할 가능성이 큽니다. 따라서 컴파일 할 때 '--prefix = / usr / local'스위치를 configure 명령에 사용하십시오. 그런 다음 'make; sudo make install '은 프로그램을 설치합니다.
— Anders

@Anders make uninstall는 표준 기능이 아니며 많은 프로그램 소스에서 찾을 수 없습니다. 또한 /usr/local우분투 경로에 있지 않은 경우 가 많으며 프로그램을 실행하거나 컴파일하려고 할 때 문제가 발생할 수 있습니다 (에 포함되어 있기 때문 /usr/local).
— ish

/ usr / local과 같은 올바른 위치가 아닌 / usr과 같은 잘못된 위치에 소프트웨어를 설치해서는 안됩니다. 컴퓨터 / 사용자 환경이 올바르게 설정되지 않은 경우 PATH 오류를 수정해야합니다. / 또는 / usr 아래에 설치하면 문제가 발생합니다. 이것을 믿어주세요. 거기에 있었고 그렇게했습니다. 재미 있지 않았습니다. 조금도. 자동 구성 기능이있는 일부 프로그램은 configure 명령으로 설정 한 경우 제거됩니다. 그것을 가지고 있지 않은 다른 사람들은 도움이되지 않고 버그를보고해야합니다 ...
— Anders

4

일반적으로 프로그램은 접두사 라는 하나의 최상위 디렉토리 아래 두 디렉토리에 설치됩니다 . 사용할 최상위 디렉토리는 설치 목적, 마녀 목적 및 소프트웨어 관리 대상에 따라 다릅니다.

접두사 /usr는 배포판에 포함 된 소프트웨어로 사용됩니다. 당신은해야 하지 가 있기 때문에, 거기에 다른 소프트웨어를 설치 합니다 설치 및 분포에 의해 포장 된 소프트웨어를 업그레이드 할 때 분포를 혼동. 그래서 하시기 바랍니다 거기에 자신의 컴파일 된 소프트웨어를 설치하지 마십시오. 실제로 자신이하는 일을 모른다면 좋은 생각 이 아닙니다 . 그리고 데비안 또는 우부 넛 개발자가 아니라면 보통 그렇지 않습니다. 어쨌든 나는 그렇게하지 않을 것입니다.

상용 소프트웨어의 경우 접두사 /opt가 사용됩니다. 배포 및 로컬 시스템 관리자를 방해하지 않도록 예약되어 있습니다.

시스템 관리자가 모든 사용자를 위해 설치하는 소프트웨어의 경우 접두사 /usr/local가 사용됩니다. 상용 또는 배포 설치에서 방해가되지 않으며 방해하지 않습니다. 따라서 시스템 관리자는이를 사용합니다 (루트 권한이있는 경우 시스템 관리자입니다).

당신은 자신에 대한 일반 사용자 소프트웨어 설치하는 경우에는 사용하여 접두사로 홈 디렉토리를 사용할 수 --prefix에 옵션을 configure"접두어 디렉토리와 ~/"나 $HOME/. 나는 학생이었을 때 많이 사용했습니다. :-)

일반적으로 소프트웨어는 올바른 값을 가진 configure옵션 --prefix으로 실행 한 다음 올바른 작업을 수행 합니다 make; make install.

이러한 접두사 중 하나에서는 일반적으로 표준 설치에서 이러한 디렉토리를 찾습니다.

  • bin -실행 프로그램, 바이너리.
  • sbin 일반적으로 일반 사용자가 실행해서는 안되는 시스템 바이너리.
  • man -프로그램, 라이브러리 및 구성 파일 등에 대한 매뉴얼 페이지
  • etc -소프트웨어의 기본값을 가진 구성 파일.
  • lib -컴퓨터의 아키텍처 (예 : CPU)에 의존하는 프로그램 라이브러리 및 데이터 파일
  • share -다른 아키텍처에서 다르지 않고 다른 컴퓨터간에 공유 될 수있는 데이터 파일.
  • var-프로그램 실행 중에 변경되는 데이터가있는 디렉토리. 로깅 파일 등

이러한 디렉토리의 대부분은 쓰기 방지 파일 시스템과 함께 사용하여 보안을 강화할 수 있습니다. 사용자가 작성해야하는 유일한 것은 var/디렉토리입니다. 소프트웨어가 업데이트 될 때이 디렉토리는 반드시 쓰기 권한이 있어야합니다. 이는 설치 중에 쓰기 권한으로 다시 마운트하여 수행 한 다음 설치 후에 읽기로만 다시 마운트 할 수 있습니다. 그러나 이것은 고급이며 고급 패키지 관리의 예로서 만 제공합니다.

이 바로 아래 일부 디렉토리입니다 /같은 다른 접두사 아래에 존재하지 않습니다 (루트 디렉토리), /dev, /tmp, /proc및 /srv(서버 데이터 디렉토리는,하지만 그들은에서 보통 /var/lib또는 /var/www당신이에 변화 구성에 필요하므로 같은 디렉토리, 서버를 실행할 때이 디렉토리를 사용하는 것이 좋습니다. /var/표준 설치를 테스트 할 때만 사용하십시오 .

  1. Linux는 MS Windows가 아닙니다. 설치할 프로그램을 배치 할 장소가 많이 있습니다. 설치 대상 및 대상에 따라 다릅니다. 내 게시물에서 읽으십시오. 주의. RedHat은 /usr데비안 / 우분투에서 사용합니다 /usr/local. 배포판을 배우십시오.
  2. 프로그램마다 설치 방법이 다릅니다. --prefix를 사용하는 프로그램에 유용합니다 configure. 아는 가장 좋은 방법은 아마도 README.txttar 아카이브에서 제공되는 파일이나 그와 비슷한 것을 읽는 것입니다. tar 아카이브는 홈 디렉토리와 같은 어느 위치에서나 추출 할 수 있습니다. 설치 단계가 완료된 후 스토리지가 부족한 경우 추출 된 tar 아카이브를 제거 할 수 있습니다. 그러나 설치를 올바르게 테스트하지 않았다면 초기에 그렇게하지 마십시오.
  3. 배포를위한 적절한 위치에 설치 apt-get되거나 aptitude항상 설치되는 프로그램 . 그 장소는 바꿀 수 없습니다.

2

일반 설치를 사용하여 저장소에서 프로그램을 설치하면 올바른 위치에 설치되고 올바른 위치에 구성 파일 (Windows 레지스트리와 유사)을 작성하고 메뉴 항목이 자동으로 작성됩니다.

파일을 다운로드 할 때 (권장하지 않지만 앱이 리포지토리에 없을 때 종종 필요함) Windows에서 압축 해제와 동일한 tar를 실행해야했습니다. 가장 많이 본 파일이 만들어집니다.

그런 다음 make install을 실행하면 일반적으로 결과가 올바른 위치에 배치되고 메뉴가 만들어 지지만 untarred 파일은 지워지지 않습니다. 당신은 아마 그렇게 할 수 있지만, 만일을 위해 임시로 저장하고 싶을 수도 있습니다.

다음은 데비안 디렉토리 구조 에 관한 흥미로운 기사입니다 .


시스템에 의해 설치된 소프트웨어 및 Ubuntu와 같은 배포판과 충돌하지 않도록 자체 소프트웨어를 설치하는 / usr / local에 대한 언급이 없다는 것을 제외하고는 좋은 기사입니다. / 또는 / usr 아래에 자신의 소프트웨어를 설치하려면 문제를 묻는 것입니다. 아마도 해결 방법은 시스템을 처음부터 다시 설치하는 것입니다.
— Anders
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.