Nix는 64비트 시스템에 32비트 패키지를 설치하고 빌드할 수 있어야 하는 것 같습니다. 해당 캐시에는 이미 i686 아키텍처용으로 구축된 전체 nixpkgs 트리가 저장되어 있으므로 다운로드하고 설치하는 데 문제가 없어야 하지만 이를 수행할 방법이 없습니다.
답변1
아직 nix를 사용하여 개별 패키지를 빌드하는 방법을 모른다면,이것은 설명입니다.
닉스 포장특수 변수 정의pkgsi686리눅스i686 패키지 트리의 경우package_i686 호출임의의 nix 표현식을 호출하고 이를 재정의하는 데 사용됩니다 system="i686-linux"
. 사용법은 매우 간단합니다.
방법 1:
jsoncpp06_32 = nixpkgs.callPackage_i686 ./jsoncpp06.nix { };
방법 2:
myPackage32 = pkgs.pkgsi686Linux.stdenv.mkDerivation {
name = "myPackage-i686-0.0.1";
boost155 = nixpkgs.pkgsi686Linux.boost155;
buildInputs = [
pkgs.gcc_multi
pkgs.python2
pkgs.pkgconfig
pkgs.pkgsi686Linux.ffmpeg_2_2
pkgs.pkgsi686Linux.boost155
pkgs.pkgsi686Linux.openssl
pkgs.pkgsi686Linux.curl
pkgs.pkgsi686Linux.opencv
jsoncpp06_32
];
};
답변2
어쩌면 이것도 실행 가능한 솔루션일 수도 있습니다.
default.nix
{ system ? builtins.currentSystem }:
let pkgs = import <nixpkgs> { inherit system; }
in pkgs.stdout.mkDerivation {
# ... as usual
}
그럼 넌 달려가
% nix-build default.nix --argstr "x86_64-linux"
그리고
% nix-build default.nix --argstr "i686-linux"