nixos - 安装 citrix-receiver 和所有需要的证书作为“nixos-rebuild”的一部分

nixos - 安装 citrix-receiver 和所有需要的证书作为“nixos-rebuild”的一部分

我已经成功安装了 citrix 接收器并使用登录工作计算机所需的证书手动配置它,但我希望这成为我的自动配置的一部分nixos-rebuild

安装和配置的步骤如下:

  • 安装 Citrix Receiver

$ nix-env -i --arg config '{ allowUnfree = true;}' citrix-receiver

  • 以 root 身份重新挂载 /nix/store 在 rw 中

# mount -o remount,rw /nix/store

  • 转到 icaclient 密钥库的位置

# cd home/dw/.nix-profile/opt/citrix-icaclient/keystore

  • 删除默认的 cacerts 目录并重新创建 cacerts 作为 /etc/ssl/certs 的符号链接

# rm -rf cacerts && ln -s /etc/ssl/certs cacerts

  • 转到 cacerts 并获取 Symantec 证书并解压缩

# cd cacerts && wget http://www.symantec.com/content/en/us/enterprise/verisign/roots/roots.zip && unzip roots.zip

  • 解压后递归查找pem文件并将其复制到当前目录

find . -name "*.pem" -type f -exec cp {} . \;

这一切都有效,但我还没有找到一个好的方法来作为常规配置的一部分来做到这一点。

任何尼克斯人知道最好的方法吗?

答案1

您可以使用自己的捆绑包重建 citrix-receiver 包:

以下代码未经测试。可以将其放入environment.systemPackagesconfiguration.nix中。

(citrix-reveiver.override {
  cacert = stdenv.mkDerivation {
    name = "symantic-cacerts";
    src = null;
    unpackPhase = ":";
    installPhase = ''
      ${pkgs.unzip}/bin/unzip ${./roots.zip}
      mkdir $out/etc/ssl/certs/
      find . -name "*.pem" -type f | xargs cat > $out/etc/ssl/certs/ca-bundle.crt
    '';
  };
})

相关内容