ocaml opam에서 선택적 종속성 설치 비활성화

coubeat 체코

문서 내용 :

패키지에는 선택적 종속성이있을 수도 있습니다. 이는 패키지가 사용할 수있는 종속성이지만 필수는 아닙니다. 기본적으로 패키지와 함께 설치되지 않지만 opam install은 선택적으로 종속 된 패키지를 설치하는 동안 이미 설치된 경우이를 활용합니다. 예를 들어, lwt를 설치하기 전에 react를 설치하면 opam install lwt는 react를 사용하도록 lwt를 구성하지만 lwt를 설치하는 것만으로는 react가 설치되지 않습니다.

어떻게 든이 기능을 끌 수 있습니까? 이 react 및 lwt 예제를 사용하면 ceat을 설치했지만 나중에 lwt를 설치할 때 lwt가 react로 구성되는 것을 원하지 않습니다.

ivg

opam은 패키지 프로그램이 패키지 구성에 대한 모든 권한을 사용자에게 노출 할 수있는 충분한 옵션을 제공하므로 기술적으로 가능합니다. 실제로는 거의 사용되지 않습니다.

포장기 옵션

패키지 관리자는 opam의 전역 및 스위치 구성을 사용하여 사용자가 원하는 패키지의 선택적 부분을 결정할 수 있습니다. 또는 선택적 종속성과 패키지 사이에 추가 브리지 패키지를 도입하여 하드 연결을 끊을 수 있습니다. 예를 들어 존재하는 lwt경우 재구성하는 대신 react의사 패키지 conf-lwt-enbale-react가 설치된 경우에만 재구성 할 수 있습니다 . 턴은 react패키지 에 따라 다릅니다 .

사용자 옵션

관심있는 패키지가 충분한 제어를 제공하지 않는 경우 몇 가지 해결 방법이 있지만 이상적으로는 패키지 관리자에게 패키지 수정 요청을 요청해야합니다 1 . 어쨌든 당신은 적어도 일시적인 패키저의 역할을 채택해야합니다.

첫 번째 옵션은 패키지 소스를 다운로드하고, opam 파일을 수정하고, 고정 버전을 고정하는 것입니다.

opam source lwt  
edit <lwt-source>/opam
opam pin add lwt <lwt-source>

여기서는 소스 코드를 다운로드 한 <lwt-source>디렉토리의 이름 opam source입니다.

대체 솔루션은 opam-repository를 복사하고 거기에서 수정 한 다음 저장소를 opam에 추가하는 것입니다. 예 :

git clone https://github.com/ocaml/opam-repository
edit opam-repository/packages/<your-package-opam-file>
opam repo add fixed-deps ./opam-repository

포장업자를위한 일반 지침 (의견 있음)

선택적 종속성이 핵심 동작을 변경하지 않고 새로운 기능을 추가 할 때, 즉 변경이 순수 추가 일 때 선택적 종속성을 사용하는 것이 어느 정도 괜찮습니다. 그러나 이것은 사용자, 특히 lwt(많은 재 컴파일과 연속적인 변경 또는 실패를 포함 할 수있는) 같은 핵심 패키지의 경우 매우 성 가실 수 있습니다 . 따라서이 기능을 사용하지 말고 코드베이스의 다른 기능 부분을 관리하는 명시 적 패키지를 사용하는 솔루션을 고수하는 것이 좋습니다.

선택적 종속성이 패키지의 핵심 동작을 변경하는 경우 (예 : 확장이 아니라 수정 인 경우) opam 선택적 종속성 메커니즘으로 표시해서는 안되며 대신 별도의 패키지로 명시 적으로 표시하거나 구성 변수를 사용합니다.


1) 가장 좋은 요청은 pull 요청이라는 것을 기억하십시오. :)).

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

tox로 선택적 종속성 설치

분류에서Dev

ceph에 종속성 설치

분류에서Dev

TreeView에서 선택 비활성화

분류에서Dev

QTableWidget에서 행 선택시 QPushButton 활성화 / 비활성화

분류에서Dev

Maven이 로컬에 설치된 종속성을 선택하지 않음

분류에서Dev

Elixir에서 선택적 종속성의 가용성 확인

분류에서Dev

파이썬시-선택적 종속성을 설치하는 방법?

분류에서Dev

적성-선택 저장 비활성화

분류에서Dev

Firefox에서 활성 선택 비활성화

분류에서Dev

값에 따라 선택 비활성화 / 활성화

분류에서Dev

값에 따라 선택 비활성화 / 활성화

분류에서Dev

종속성이 설치된 경우에만 선택적 구성 요소를 빌드하도록 autotools를 구성하는 방법은 무엇입니까?

분류에서Dev

OCaml 서명 종속성 오류

분류에서Dev

Windows 서비스 비활성화 여부에 따라 MSI 설치

분류에서Dev

Android 6.0 이상 : 내 앱에서 지리적 위치가 비활성화 됨 (전화 설정 및 매니페스트에서 활성화 된 경우에도)

분류에서Dev

ASP.NET Web API에서 선택적으로 XML 포맷터 비활성화

분류에서Dev

다중 선택 Django 위젯에서 선택 비활성화

분류에서Dev

Xaml에서 ComboBox 선택에 대한 컨트롤 활성화 / 비활성화

분류에서Dev

기능 'xxx'는 선택적 종속성이 아닌 'yyy'에 종속됩니다.

분류에서Dev

버튼 선택 드롭 다운 값에서 비활성화 활성화

분류에서Dev

자동 완성에서 자동 선택 비활성화 | jQuery UI

분류에서Dev

Android Studio에서 스위치로 editText 활성화 / 비활성화

분류에서Dev

Flexslider에서 터치 이벤트 비활성화 / 활성화

분류에서Dev

Laravel composer 설치가 "종속성 설치"에서 중단됨

분류에서Dev

뷰에서 터치 비활성화

분류에서Dev

MSBuild에서 PackageReference의 (전 이적) 종속성을 제외 (비활성화)하는 방법은 무엇입니까?

분류에서Dev

MSBuild에서 PackageReference의 (전 이적) 종속성을 제외 (비활성화)하는 방법은 무엇입니까?

분류에서Dev

.net 핵심 웹 작업에서 App Insights 원격 종속성 추적을 비활성화하는 방법

분류에서Dev

64 비트 Cygwin에서 스택 크기 늘리기? (ocaml 설치)

Related 관련 기사

  1. 1

    tox로 선택적 종속성 설치

  2. 2

    ceph에 종속성 설치

  3. 3

    TreeView에서 선택 비활성화

  4. 4

    QTableWidget에서 행 선택시 QPushButton 활성화 / 비활성화

  5. 5

    Maven이 로컬에 설치된 종속성을 선택하지 않음

  6. 6

    Elixir에서 선택적 종속성의 가용성 확인

  7. 7

    파이썬시-선택적 종속성을 설치하는 방법?

  8. 8

    적성-선택 저장 비활성화

  9. 9

    Firefox에서 활성 선택 비활성화

  10. 10

    값에 따라 선택 비활성화 / 활성화

  11. 11

    값에 따라 선택 비활성화 / 활성화

  12. 12

    종속성이 설치된 경우에만 선택적 구성 요소를 빌드하도록 autotools를 구성하는 방법은 무엇입니까?

  13. 13

    OCaml 서명 종속성 오류

  14. 14

    Windows 서비스 비활성화 여부에 따라 MSI 설치

  15. 15

    Android 6.0 이상 : 내 앱에서 지리적 위치가 비활성화 됨 (전화 설정 및 매니페스트에서 활성화 된 경우에도)

  16. 16

    ASP.NET Web API에서 선택적으로 XML 포맷터 비활성화

  17. 17

    다중 선택 Django 위젯에서 선택 비활성화

  18. 18

    Xaml에서 ComboBox 선택에 대한 컨트롤 활성화 / 비활성화

  19. 19

    기능 'xxx'는 선택적 종속성이 아닌 'yyy'에 종속됩니다.

  20. 20

    버튼 선택 드롭 다운 값에서 비활성화 활성화

  21. 21

    자동 완성에서 자동 선택 비활성화 | jQuery UI

  22. 22

    Android Studio에서 스위치로 editText 활성화 / 비활성화

  23. 23

    Flexslider에서 터치 이벤트 비활성화 / 활성화

  24. 24

    Laravel composer 설치가 "종속성 설치"에서 중단됨

  25. 25

    뷰에서 터치 비활성화

  26. 26

    MSBuild에서 PackageReference의 (전 이적) 종속성을 제외 (비활성화)하는 방법은 무엇입니까?

  27. 27

    MSBuild에서 PackageReference의 (전 이적) 종속성을 제외 (비활성화)하는 방법은 무엇입니까?

  28. 28

    .net 핵심 웹 작업에서 App Insights 원격 종속성 추적을 비활성화하는 방법

  29. 29

    64 비트 Cygwin에서 스택 크기 늘리기? (ocaml 설치)

뜨겁다태그

보관