2014-05-14 3 views
29

특정 프로그램에 대해 configuration.nix에있는 어떤 옵션을 사용할 수 있는지 이해하려면 module's definitions을 선택하여 사용 가능한 옵션을 이해하고 nixpkgs 소스 트리의 pkgs 하위 폴더를 검색하십시오. 그러나 나는 PHP에 대해 골치 아픈 사건을 겪고 있습니다. 특별한 파생물 인 composable derivation입니다. PHP에서 사용할 수있는 옵션이 무엇인지 알 수 없습니다. mcrypt, gd 등과 같은 특수 모듈을 사용하는 데 큰 도움이 될만한 사항이 있으면 크게 도움이 될 것입니다.Nix 구성 가능한 유도 옵션

+1

뿐만 아니라이 찾고. – clord

+0

그들은 PHP에서 파생 된 플래그로 설정됩니다. configuration.nix 또는 config.nix에서 플래그를 무시할 수 있지만 컴파일에서 실제로 변경하려는 경우에는 실제로 고유 한 파생을 만들어야합니다. – CMCDragonkai

+0

nix-build를 사용하여 php 모듈을 빌드 할 때 유용합니다. php composableDerivation에 대해이 .nix 파일 https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/interpreters/php/5.4.nix를 찾았습니다. 이것은 사용자 정의 패키지를 추가 할 때 PHP가 특정 패키지를 빌드 할 때 github에있는 것처럼 보입니다. PHP 패키지를 nixos에 추가하려고하면 추가 사용자 정의 패키지 섹션은 다른 사용자와 다르게 수행되지 않는 한 어떻게 수행되는지 지시합니다. – unixmiah

답변

0

configuration.nix에서 파일 상호 작용을 추적하고 처음에는 모든 플래그를 이해하려고 시도합니다. PHP 파일은 어떤 종류의 "시작 엔진"입니다. 가능한 구성 옵션이없는 것 같습니다. 일부 유형의 실행 스위치로 사용되며 행 234-236 (PHP)에 설정이 필요하다고 표시됩니다.

http://nixos.org/nixos/manual/sec-configuration-syntax.html#sec-nix-syntax-summary은 가능성을 매우 분명히 보여줍니다. 다시 말하면 나는 그 엔진에 있지는 않지만 NixOS admin 명령을 사용하여 구성하는 것이 더 이상 필요하다고 생각합니다. 정확히 수행해야 할 작업을 설명하면 도움이 될 것입니다.

2

그것은이 알아낼 걸 렸어요하지만 PHP는 패키지 기능을 구축 설정 composeDerivation를 사용하는 올바른 방법은 이것이다 :

# config.nix 
    { 
    packageOverrides = pkgs: rec { 
     php = pkgs.php.merge { 
     cfg = { 
      imapSupport = false; 
      intlSupport = false; 
      fpmSupport = false; 
     }; 
     }; 
    }; 
    } 

이것은 PHP/기본에 지정된 CFG의 기본 값을 대체합니다. nix (imapSupport, intlSupport 및 fpmSupport가 꺼짐). 당신은 ~/.nixpkgs/config.nix에서 파일 중 하나를 장소는 활성 시스템 전체 수 또는 글로벌 nixpkgs을 사용자 정의과 같이 다른 유닉스 계열의 파일을 사용할 수 있습니다

pkgs = import <nixpkgs> { config = (import ./config.nix); }; 
관련 문제