apt-get
또는 Cloud Foundry 빌드 팩의 다른 패키지 관리자 또는 앱과 함께 제공되는 .profile
스크립트를 사용할 수 있습니까? 내가 할 수 있다면, 어떻게해야합니까? 나는 dockerfile에서와 같은 방식으로 그것을 수행 할 것으로 기대하지만, 내 경우에는 sudo
의 유무에 관계없이 작동하지 않습니다.Cloud Foundry 인스턴스에서 패키지 관리자 사용
4
A
답변
3
Cloud Foundry buildpack 또는 app과 함께 제공되는 .profile 스크립트에서 apt-get 또는 다른 패키지 관리자를 사용할 수 있습니까? 내가 할 수 있다면, 어떻게해야합니까?
번호 실행 apt-get
또는 패키지 관리자는 일반적으로 루트 액세스를 필요로하고 당신은 루트 액세스를하지 않을 때 빌드 팩 실행하거나 응용 프로그램 실행 (이 도커/w 차이입니다).
즉, 루트 액세스가 필요없는 모든 작업을 수행 할 수 있으므로 vcap 사용자의 홈 디렉토리에 설치되어 루트가 필요없는 패키지 관리자를 찾은 경우 사용할 수 있습니다.
설치하려는 대상에 따라 다르지만 경우에 따라 .deb 또는 .rpm 파일을 다운로드하고 수동으로 바이너리를 추출하여 해결할 수 있습니다. 이것은 일반적으로 공유 라이브러리와 같은 것들에 대해 정상적으로 작동합니다. 스택에 맞는 미리 컴파일 된 바이너리를 다운로드하면됩니다 (cflinuxfs2
== Ubuntu Trusty). 다른 것들은 소스에서 자신의 바이너리를 빌드 할 수 있습니다. 이것이 빌드 팩의 기능입니다 (binary-builder 참조).
희망 하시겠습니까?
예를 들어, php buildpack (php-apc 또는 pwgen과 같은)에 확장을 추가하려면 apt-get에서 설치하는 대신 .so 파일을 올바른 것으로 복사하는 것이 좋습니다. 예배 규칙서? –
Daniel의 답변을 확장하려면 아마도 빌드 팩 내부에서 비 결정적 동작이 발생하는 것을 원하지 않을 것입니다. 예를 들어'apt-get' 할 때, 앱이 무엇을 상연했는지에 따라 다른 버전의 의존성을 얻을 수 있습니다. –
@QuanTranGia - 위에서 언급 한 바이너리 빌더를 살펴보십시오. 이것이 PHP와 모든 확장 기능을 구축하는 방법입니다. 기본적으로 제공되지 않는 확장 프로그램이 필요한 경우 문제 (또는 더 나은 홍보)를 제출하면 추가 될 가능성이 큽니다. –