php editor Strawberry は、Nix --pure モードの go パッケージがホストの GOPATH を指している問題を紹介します。 Nix では、--pure モードは、ホストの環境変数やパス設定に依存しないクリーンな環境です。ただし、一部のユーザーは、 --pure モードで go パッケージを使用してもホストの GOPATH を指していることに気づきました。 --pure モードの go パッケージはホスト環境から完全に独立しているわけではなく、ホストの GOPATH 設定にある程度依存するためです。この質問に対しては、Nix がどのように機能するのか、そして環境を正しく構成する方法をさらに理解する必要があります。
質問内容
go パッケージを使用して nix シェルを実行し、go プログラムをテストしようとしています。ただし、再現性を確保するために、nix-shell でホスト関連のパスや情報を指すことは望ましくありません。したがって、コマンドで --pure
フラグを使用するようにアドバイスされました。
最終的なコマンドは次のようになります:
リーリーシェルが起動した後、go env
を実行すると、次の内容が表示されます:
ホストから継承された gopath
およびその他の関連する環境変数を使用せずに、再現可能な方法で go プロジェクトをインストールしたいと考えています。
nix go パッケージをシェルにインストールして go プロジェクトをテストすることで、ホスト システムの依存関係を完全に分離する方法はありますか?
解決策
環境変数が GOPATH
、GOENV
、GOMODCACHE
などである場合でも。 まったく設定されていません 、go env
および関連ツールは、$HOME
を基準としたデフォルト値を合成します。
したがって、プロジェクトにホーム ディレクトリに対する隠れた依存関係がないことを定期的にテストしたい場合は、そのビルドを Nix フォークでラップする必要があります。Nix がサンドボックスをサポートし、この機能が有効になっているプラットフォームを使用していると仮定すると、次のようになります。これにより、ホーム ディレクトリにアクセスせずにサンドボックス内でビルドが完了します。
プログラム ビルドをラップするフォークの構築に関するガイダンスについては、gomod2nix および nixos.wiki のより一般的な Go エントリを参照してください。
また、nix-shell --pure
は、いかなる意味でも純粋なシェルを作成しないことに注意してください。依然としてローカル チャネルからの nixpkg に依存します。これを制御したい場合は、特定の nixpkgs バージョンを固定するために shell.nix
または flake.nix
が必要です。
以上がNix: --pure モードの go パッケージは依然としてホストの GOPATH を指しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

この記事では、Goのパッケージインポートメカニズム:名前付きインポート(例:インポート "fmt")および空白のインポート(例:_" fmt")について説明しています。 名前付きインポートはパッケージのコンテンツにアクセス可能になり、空白のインポートはtのみを実行します

この記事では、Webアプリケーションでのページ間データ転送のためのBeegoのnewflash()関数について説明します。 newflash()を使用して、コントローラー間で一時的なメッセージ(成功、エラー、警告)を表示し、セッションメカニズムを活用することに焦点を当てています。 リミア

この記事では、MySQLクエリの結果をGO structスライスに効率的に変換することを詳しく説明しています。 データベース/SQLのスキャン方法を使用して、手動で解析することを避けて強調しています。 DBタグとロブを使用した構造フィールドマッピングのベストプラクティス

この記事では、ユニットテストのためにGOのモックとスタブを作成することを示しています。 インターフェイスの使用を強調し、模擬実装の例を提供し、模擬フォーカスを維持し、アサーションライブラリを使用するなどのベストプラクティスについて説明します。 articl

この記事では、GENICSのGOのカスタムタイプの制約について説明します。 インターフェイスがジェネリック関数の最小タイプ要件をどのように定義するかを詳しく説明し、タイプの安全性とコードの再利用性を改善します。 この記事では、制限とベストプラクティスについても説明しています

この記事では、goで効率的なファイルの書き込みを詳しく説明し、os.writefile(小さなファイルに適している)とos.openfileおよびbuffered write(大規模ファイルに最適)と比較します。 延期エラー処理、Deferを使用し、特定のエラーをチェックすることを強調します。

この記事では、GOでユニットテストを書くことで、ベストプラクティス、モッキングテクニック、効率的なテスト管理のためのツールについて説明します。

この記事では、トレースツールを使用してGOアプリケーションの実行フローを分析します。 手動および自動計装技術について説明し、Jaeger、Zipkin、Opentelemetryなどのツールを比較し、効果的なデータの視覚化を強調しています


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

Dreamweaver Mac版
ビジュアル Web 開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
