카테고리 없음

[c++] Mac / Linux에서 설치된 애플리케이션 찾기

행복을전해요 2020. 12. 19. 20:43

일반적으로 UNIX 시스템에서는 모든 프로그램이 어리석게 명명되고 부분적으로 지역화 된 디렉토리의 hodge-podge 모음에 배포되는 대신 $ PATH에 상주 할 것으로 예상 할 수 있습니다. 따라서 기본적으로 종속성 경로를 찾을 필요가 없습니다. execvp를 통해 다른 "앱"(프로그램)을 호출하면 libc가 $ PATH 항목을 살펴보고 실행 파일을 찾는 작업을 처리합니다.

클래식 UNIX 모델에서는 설치 프로그램에서 아무것도 확인하지 않고 실행 파일을 사용할 수 있는지 (예를 들어) 사용할 수 있는지 런타임에 확인하기 만하면됩니다.

-------------------

Linux (apt, yum)의 일반 패키지 관리자를 통해 애플리케이션을 배포하려는 경우 애플리케이션을 종속성으로 추가 할 수 있습니다. 사용자 지정 설치 스크립트의 경로를 따라가는 경우 일종의 해커에 의존해야합니다. 시스템에서 사용중인 패키지 관리자를 찾아서 쿼리를 시도하거나 (패키지 관리자없이 다른 응용 프로그램이 설치된 경우 실패 할 수 있음) which required_app.

제대로하고 싶다면 첫 번째로 가십시오.

-------------------

Mac OS X에서 일반적인 .app번들에 번들 로 제공되는 응용 프로그램을 찾고 있다면 Spotlight를 사용하여 명령 줄 유틸리티를 사용하여 번들 ID에서 찾을 수 있습니다 mdfind(1). 예를 들어, Firefox가 설치되어 있는지 (그리고 어디에) 있는지 확인하려면 다음 명령을 실행하십시오.

mdfind 'kMDItemCFBundleIdentifier == org.mozilla.firefox'
-------------------

Windows Installer에 해당하는 것은 Linux 패키지 관리자입니다. 패키지 관리자는 종속성을 처리하고 설치합니다 (시스템에 아직없는 경우). 응용 프로그램에 대한 종속성 정보는 패키지 파일에 저장됩니다. 개념은 동일하지만 각 배포에는 자체 패키지 관리자가 있습니다.

패키지 관리자에 대한 세부 사항에 대한 온라인 리소스가 많이 있습니다. 그러나 Windows Installer와 비교하여 개요를 보려면 Windows 사용자 용 GNU / Linux의 응용 프로그램 관리를 확인하십시오 .



출처
https://stackoverflow.com/questions/7417012