Как протестировать пакет без его установки в Linux
По какой-то причине вам может потребоваться протестировать пакет перед его установкой в вашей системе Linux. Если да, то вам повезло! Сегодня я покажу вам, как это сделать в Linux с помощью менеджера пакетов Nix. Одной из примечательных особенностей менеджера пакетов Nix является то, что он позволяет пользователям тестировать пакеты без необходимости предварительной их установки. Это может быть полезно, если вы хотите временно использовать определенное приложение.
Тестирование пакета без его установки в Linux
Сначала убедитесь, что вы установили менеджер пакетов Nix. Если вы еще не установили его, обратитесь к следующему руководству.
- Nix – мощный менеджер пакетов для Linux и Unix
Например, предположим, что вы хотите протестировать свой код 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:
[nix-shell:~]$ 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, чтобы вернуться в консоль.
[nix-shell:~]$ exit
exit
После выхода из nix-оболочки вы не сможете использовать GCC.
Вот еще один пример.
nix-shell -p hello
При этом создается или загружается GNU Hello и его зависимости, а затем вы попадаете в оболочку Bash, где присутствует команда hello , и все это не затрагивает вашу обычную среду:
[nix-shell:~]$ hello
Hello, world!
Введите exit, чтобы вернуться обратно в консоль.
[nix-shell:~]$ exit
Теперь проверьте, доступна ли программа hello или нет.
hello
hello: command not found
Более подробную информацию о менеджере пакетов Nix можно найти в следующем руководстве.
- Начало работы с диспетчером пакетов Nix