Поиск по сайту:

Как протестировать пакет без его установки в 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

Статьи по данной тематике