我正在尝试编写一个派生版本,它将安装一些可执行文件。我可以使用symlinkJoin轻松完成此操作
{pgm-a, pgm-b, symlinkJoin}: symlinkJoin {
name = "pgm-env";
paths = [pgm-a,pgm-b]; }
但是,如果已经安装了pgm-a
或pgm-b
,我会收到一个错误消息,其中包含冲突的软件包...
...'<pgm-a>/bin/pgm-a' and '<pgm-env>/bin/pgm-a' have the same priority 5; use 'nix-env --set-flag priority NUMBER INSTALLED_PKGNAME' ...
是否有一种方法可使环境中的可执行文件套件可用,但只会向环境中添加所需的内容(或避免该错误)?
一些背景:
我已经开始为我的实验室策划一个私有存储库。我们设置了VM网络,安装了一些软件,进行了一些测试,冲洗并重复。除了我之外,没有人是Nix用户,所以我希望将nix部分保持尽可能低调-我既不想用户必须设置优先级标志,也不想让他们使用nix-shell
。它们都习惯于做apt-get install ...
,所以我的计划是让它们代替nix-env -i
并提供ourExperiment-x
之类的软件包,以使它们大部分方式正确地配置VM。
答案 0 :(得分:1)
是的,您可以像这样直接声明时设置包优先级:
this.updateForm = this.formBuilder.group({
username: [ '', Validators.required],
pin: ['', Validators.required],
adress: ['', Validators.required],
country: ['', Validators.required],
city: ['', Validators.required],
about: ['', Validators.required],
// file: ['' , requiredFileType('png')],
first_name: ['', Validators.required],
last_name: ['', Validators.required],
email: ['', [Validators.required, Validators.email]],
password1: ['', [Validators.required, Validators.minLength(1)]],
password2: ['', [Validators.required, Validators.minLength(1)]]
});
默认优先级为5,优先级较低的优先级高于优先级,因此,将其设置为10,此派生的文件将仅用作后备。