Guix用のnix-shellと同じツールがありますか?

Guix用のnix-shellと同じツールがありますか?

マニュアルページでは、次のようにnix-shell説明します。

Nix は、 nix-shell コマンドを使用して仮想環境の一種を提供するために使用できます。

Python開発者が通常Pythonパッケージ用の仮想環境を作成してアクティブ化するのと同様に、nix-shellこれはユーザーが仮想シェル環境をダウンロードして有効にするためのツールであるNixパッケージマネージャで利用可能なすべてのパッケージ用の仮想環境を作成しますに使用できます。 、ユーザーやシステム環境を汚染することなく特定のソフトウェアを開発するために必要なパッケージが含まれています。

私の質問は:nix-shellGuixパッケージマネージャに対応するツールがありますか?

答え1

持つguix shell今。

$ guix shell hello

helloパッケージがインストールされた新しい環境を提供します。これは「ドロップイン」代替品ですguix environment --ad-hoc

もっと欲しいなら依存関係(たとえばhello開発を開始するには)必要なものは次のとおりです。

$ guix shell -D hello

答え2

私はあなたが探していると思いますguix environment --ad-hoc。たとえば、

guix environment --ad-hoc python python-pandas

これにより、PythonとPandasがインストールされた一時的なGuix設定ファイルが作成されますが、Guixの他のパッケージもインストールされます。特にPythonの場合は、これを含めてpythonこれを知ることができるはずですpython-pandas。上記は、現在のユーザーとシステムプロファイルの既存の環境変数とパッケージに引き続きアクセスできる一時プロファイルを提供します。

より孤立した(したがって再現可能な)環境では、次のように既存の--pure環境変数、ユーザープロファイル、およびシステムプロファイルを非表示にできます。

guix environment --pure --ad-hoc [packages]

完全にコンテナ化された分離のためにファイルシステムとネットワークアクセスを制限できます。

guix environment --container --ad-hoc [packages]

最後の2つのオプションでは、より多くの基本パッケージを明示的に指定する必要があります。つまり、coreutilsより多くの努力が必要ですが、再現性は高いです。

バラよりGUIX環境コールもっと学ぶ。

direnvまた、さまざまなプロジェクトに対してこれらの設定ファイルやその他の環境変数を自動的に有効/無効にするプログラムを使用しています。.envrc次のようにプロジェクトのファイルを作成します。

use guix --ad-hoc python python-matplotlib python-html5lib python-mypy python-flake8
source ~/.virtualenvs/base-django-py38/bin/activate
export DJANGO_SETTINGS_MODULE=project.settings.dev

これはuse guixdirenv のカスタム機能です。簡単な記録

関連情報