Как протестировать пакет без его установки в Linux

by itisgood

По какой-то причине вы можете протестировать пакет перед его установкой в своей Linux-системе.

Сегодня я расскажу вам, как это сделать в Linux с помощью диспетчера пакетов Nix.

Одной из заметных особенностей диспетчера пакетов Nix является то, что он позволяет пользователям тестировать пакеты без необходимости их установки в первую очередь.

Это может быть полезно, если вы хотите временно использовать определенное приложение.

Убедитесь, что вы сначала установили менеджер пакетов Nix.

Если вы еще не установили его, обратитесь к следующему руководству:

Например, скажем, вы хотите протестировать свой код на C ++.

Вам не нужно устанавливать GCC.

Просто запустите следующую команду:

 $ nix-shell -p gcc 

Эта команда создает или загружает пакет gcc и его зависимости, а затем помещает вас в оболочку Bash, где присутствует команда gcc, и все это не влияет на вашу обычную среду.

LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
download-using-manifests.pl: perl: warning: Setting locale failed.
download-using-manifests.pl: perl: warning: Please check that your locale settings:
download-using-manifests.pl: LANGUAGE = (unset),
download-using-manifests.pl: LC_ALL = (unset),
download-using-manifests.pl: LANG = "en_US.UTF-8"
download-using-manifests.pl: are supported and installed on your system.
download-using-manifests.pl: perl: warning: Falling back to the standard locale ("C").
download-from-binary-cache.pl: perl: warning: Setting locale failed.
download-from-binary-cache.pl: perl: warning: Please check that your locale settings:
download-from-binary-cache.pl: LANGUAGE = (unset),
download-from-binary-cache.pl: LC_ALL = (unset),
download-from-binary-cache.pl: LANG = "en_US.UTF-8"

[...]

fetching path ‘/nix/store/6mk1s81va81dl4jfbhww86cwkl4gyf4j-stdenv’...
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

*** Downloading ‘https://cache.nixos.org/nar/0aznfg1g17a8jdzvnp3pqszs9rq2wiwf2rcgczyg5b3k6d0iricl.nar.xz’ to ‘/nix/store/6mk1s81va81dl4jfbhww86cwkl4gyf4j-stdenv’...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 8324 100 8324 0 0 6353 0 0:00:01 0:00:01 --:--:-- 6373

[nix-shell:~]$

Проверьте версию GCC:

$ gcc -v
Using built-in specs.
COLLECT_GCC=/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0/bin/gcc
COLLECT_LTO_WRAPPER=/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0/libexec/gcc/x86_64-unknown-linux-gnu/5.4.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 5.4.0 (GCC)

Теперь идите и проверьте код.

Когда вы закончите, введите exit, чтобы вернуться на консоль.

$ exit
exit

Когда вы выйдете из nix-оболочки, вы не сможете использовать GCC.

Вот еще один пример.

$ nix-shell -p hello

Это создает или загружает GNU Hello и его зависимости, а затем бросает вас в оболочку Bash, где присутствует команда hello, и все это не влияет на вашу обычную среду:

$ hello
Hello, world!

Введите exit, чтобы вернуться в консоль.

$ exit

Теперь проверьте, доступна ли программа hello или нет.

$ hello 
hello: command not found

You may also like

Leave a Comment