Olá a todos,
Acho que seria ótimo se você pudesse alterar as variáveis de ambiente (acessadas, por exemplo, por $ env: Name ou Get-ChildItem env :) no Linux.
Por exemplo, para definir os valores de um novo arquivo de configuração em / etc ?
No Windows, posso alterar, por exemplo, PSModulePath e adicionar um caminho personalizado. A única opção no Linux é criar um arquivo ps1 de perfil para todos os usuários.
Obrigada.
Posso sugerir que você altere o título do seu problema para refletir o fato de que você está procurando o PowerShell para apresentar uma maneira _profile-independente_ de definir _persistentemente_ as variáveis de ambiente?
Algumas reflexões:
Variáveis de ambiente são por definição _shell / application-agnostic_ e são vistas por _todos_ os processos descendentes, independente de qual shell / aplicativo os criou.
O PowerShell "escuta" apenas _2_ variáveis de ambiente, $env:PSModulePath
sendo uma delas.
Pelo que entendi, os ambientes Linux (todos eles?) Já possuem o arquivo /etc/environment
como um mecanismo independente de shell para definir variáveis de ambiente em todo o sistema.
Dito isso, se um conjunto de variáveis de ambiente é realmente usado apenas por _PowerShell_, então o perfil _PowerShell_ de todo o sistema - $profile.AllUsersAllHosts
- indiscutivelmente _é_ o lugar certo para defini-los.
/etc/profile
, que se espera que o shell padrão processe, que (a) não tem efeito para aplicativos GUI, e (b) requer o shell padrão para honrar esta expectativa e (c) requer o shell padrão para entender a sintaxe do shell POSIX (que PowerShell, se fosse definido como o shell padrão, não [_Update_: /etc/profile
e ~/.profile
now _are_ honrado se você começar com pwsh -l
ou use PowerShell como o shell padrão]).Tentei definir uma variável de ambiente como esta em uma máquina Ubuntu:
Eu esperava que isso fosse editar o arquivo / etc / environment para definir a variável de ambiente em todo o sistema.
Infelizmente, o .NET Core ainda precisa implementar um método para definir variáveis de ambiente em sistemas Unix. A documentação para esses métodos afirma que a aplicação de valores a qualquer coisa diferente do processo atual só é compatível com o Windows. : frowning_face:
Comentários muito úteis
Posso sugerir que você altere o título do seu problema para refletir o fato de que você está procurando o PowerShell para apresentar uma maneira _profile-independente_ de definir _persistentemente_ as variáveis de ambiente?
Algumas reflexões:
Variáveis de ambiente são por definição _shell / application-agnostic_ e são vistas por _todos_ os processos descendentes, independente de qual shell / aplicativo os criou.
O PowerShell "escuta" apenas _2_ variáveis de ambiente,
$env:PSModulePath
sendo uma delas.Pelo que entendi, os ambientes Linux (todos eles?) Já possuem o arquivo
/etc/environment
como um mecanismo independente de shell para definir variáveis de ambiente em todo o sistema.Dito isso, se um conjunto de variáveis de ambiente é realmente usado apenas por _PowerShell_, então o perfil _PowerShell_ de todo o sistema -
$profile.AllUsersAllHosts
- indiscutivelmente _é_ o lugar certo para defini-los./etc/profile
, que se espera que o shell padrão processe, que (a) não tem efeito para aplicativos GUI, e (b) requer o shell padrão para honrar esta expectativa e (c) requer o shell padrão para entender a sintaxe do shell POSIX (que PowerShell, se fosse definido como o shell padrão, não [_Update_:/etc/profile
e~/.profile
now _are_ honrado se você começar compwsh -l
ou use PowerShell como o shell padrão]).