Bug 30684

Summary: nix -- The Purely Functional Package Manager
Product: New/proposed packages Reporter: Ivan Zakharyaschev <imz>
Component: Обычный репозиторийAssignee: Andrey Cherepanov <cas>
Status: NEW --- QA Contact: Andrey Cherepanov <cas>
Severity: normal    
Priority: P3 CC: lav, viy, vseleznv
Version: не указана   
Hardware: all   
OS: Linux   
URL: http://nixos.org/nix/

Description Ivan Zakharyaschev 2015-01-28 17:25:48 MSK
It allows to get packages from nixpkgs (a quite large repo of packages) and install them user-locally or in some other way. (With `nix-env -i`.)

From http://nixos.org/nix/ :


On Linux and Mac OS X, the easiest way to install Nix is to run the following shell command (as a user other than root):

$ curl https://nixos.org/nix/install | sh

This script will download a distribution-independent binary tarball containing Nix and its dependencies, and unpack it in /nix.

Other installation options, including packages for Ubuntu, Debian and Fedora Linux, are also available. -- http://nixos.org/nix/download.html

-----

Perhaps, the provided RPMs can be used on ALT.

An issue is how to control the access to the common store of nix packages (contexts, environments -- whatever it is correct to call them).

After a local installation from the shell-script, I have:

$ l -d /nix/
drwxr-xr-x 4 imz root 4096 дек 26 13:31 /nix//
$ ls /nix/* -ld
drwxr-xr-x 109 imz imz 94208 янв 23 15:49 /nix/store
drwxr-xr-x   4 imz imz  4096 дек 26 13:31 /nix/var
$ 


So it looks as if other users wouldn't be able to modify it (unless there is some setUID helper).

---

A convenience of having a package in the distro would probably also be the ability to run "man nix-env".
Comment 1 Ivan Zakharyaschev 2015-01-28 17:34:22 MSK
FYI: if someone will try it:

Recently I had an issue getting pkgs from nixpkgs with nix (they are hosted on Amazon CloudFront), so we suspected that they may be blocked by Russian censorship, hence I used TOR(+polipo) with "http_proxy=... https_proxy=..." prefixed to "nix-env -i noweb" to install noweb (for example).
Comment 2 Ivan Zakharyaschev 2015-01-28 17:34:58 MSK
Perhaps the nix package could be autoimported from Fedora or the like....
Comment 3 Ivan Zakharyaschev 2015-01-28 17:43:10 MSK
Unfortunately, the Fedora pkgs cannot be installed simply (because of incompatible Perl deps):

apt> install nix
Некоторые пакеты установить невозможно. Это может означать, что Вы
потребовали невозможного, либо пользуетесь нестабильным репозиторием.
Часть необходимых пакетов либо ещё не создана, либо была удалена
из каталога 'Входящие'.

Так как для выполнения Вашего запроса достаточно одной операции, то
скорее всего этот пакет просто невозможно установить. Сообщите, пожалуйста,
об этом как о найденной ошибке в пакете.
Эти сведения могут помочь найти выход из ситуации:

Следующие пакеты имеют неудовлетворенные зависимости:
  nix: Требует: perl(Cwd) но пакет не может быть установлен
       Требует: perl(DBD::SQLite) но пакет не может быть установлен
       Требует: perl(DBI) но пакет не может быть установлен
       Требует: perl(Encode) но пакет не может быть установлен
       Требует: perl(English) но пакет не может быть установлен
       Требует: perl(Exporter) но пакет не может быть установлен
       Требует: perl(Fcntl) но пакет не может быть установлен
       Требует: perl(File::Basename) но пакет не может быть установлен
       Требует: perl(File::Copy) но пакет не может быть установлен
       Требует: perl(File::Path) но пакет не может быть установлен
       Требует: perl(File::Temp) но пакет не может быть установлен
       Требует: perl(File::stat) но пакет не может быть установлен
       Требует: perl(IO::Handle) но пакет не может быть установлен
       Требует: perl(IO::Select) но пакет не может быть установлен
       Требует: perl(IPC::Open2) но пакет не может быть установлен
       Требует: perl(List::Util) но пакет не может быть установлен
       Требует: perl(MIME::Base64) но пакет не может быть установлен
       Требует: perl(POSIX) но пакет не может быть установлен
       Требует: perl(WWW::Curl::Easy) но пакет не может быть установлен
       Требует: perl(WWW::Curl::Multi) но пакет не может быть установлен
       Требует: perl(utf8) но пакет не может быть установлен
       Требует: perl(warnings) но пакет не может быть установлен
       Требует: rpmlib(FileDigests) (<= 4.6.0-1) но пакет не может быть установлен
E: Извините, `битые' пакеты
apt> 

ALT's perl packages provide the virtual packages in a different format unfortunately:

apt> showpkg perl-WWW-Curl 
Package: perl-WWW-Curl
Versions: 
4.15-alt3(/var/lib/apt/lists/ftp.altlinux.org_pub_distributions_ALTLinux_t7_branch_x86%5f64_base_pkglist.classic)

Reverse Depends: 
  i586-perl-WWW-Curl.32bit,perl-WWW-Curl 4.15-alt3
Dependencies: 
4.15-alt3 - /usr/lib64/perl5 (0 (null)) libc.so.6(GLIBC_2.14)(64bit) (0 (null)) libc.so.6(GLIBC_2.15)(64bit) (0 (null)) libc.so.6(GLIBC_2.2.5)(64bit) (0 (null)) libcurl.so.4()(64bit) (2 set:jeubtI94OqnvVZ84Y7mkmt8URKTZ8D73d0sJohSAIQJG1rFrpgvLNJ2Nbb) libperl-5.16.so()(64bit) (2 set:oib4KrVf0I95nbfJx2X9WiH3BtSgrgsS8y9MWYtkhH9N6cMnw4m4K6KxZceXrkRZ1jcQbISDpqCguKBhrJTXwQ5W4mCMRh54Z4aFp5eUrU1lFUTFKPMJmGV8NopcBJQyiEi2UKxjaSkK1) libpthread.so.0(GLIBC_2.2.5)(64bit) (0 (null)) perl(XSLoader.pm) (0 (null)) rtld(GNU_HASH) (0 (null)) 
Provides: 
4.15-alt3 - perl-WWW-Curl perl(WWW/Curl/Share.pm) perl(WWW/Curl/Multi.pm) perl(WWW/Curl/Form.pm) perl(WWW/Curl/Easy.pm) perl(WWW/Curl.pm) 
Reverse Provides: 
perl-WWW-Curl 4.15-alt3
apt>
Comment 4 Ivan Zakharyaschev 2015-01-28 17:52:12 MSK
I've written down the issue with Perl at https://bugzilla.altlinux.org/show_bug.cgi?id=30684#c3 .
Comment 5 Ivan Zakharyaschev 2015-10-28 22:49:29 MSK
I've written down the issue with Perl at  
https://bugzilla.altlinux.org/show_bug.cgi?id=30685 .