그놈 세션에 환경 변수를 어떻게 설정합니까?


15

내 시스템에서 SDL을 사용하는 앱의 경우 환경 변수를 설정해야합니다.

export SDL_AUDIODRIVER=alsa

소리가 제대로 작동하도록합니다. 어떻게이 변수가 모든 응용 프로그램 (노틸러스, 또는 사용하여 응용 프로그램을 실행하면 너무에 대한 존재한다는 것을 나의 GNOME 세션을 설정하는 DBGL , 애플 리케이션이 제대로 작동)?

편집하다:

내가 설정하지 않은 구성 파일 (및 각 시스템을 재설정 한 후)을 사용할 수 없습니다.

  • .xsession
  • .xsessionrc
  • .gnomerc
  • .bash_profile
  • .profile<-일반적인 경우에는 작동하지만 배포판이 변수를 다른 곳에 설정 한 경우에는 작동하지 않습니다.
  • /etc/profile

이것이 환경 변수 여야합니까? 다른 종류의 설정 일 수 있습니다. 시스템 사운드 설정 애플릿을 파헤 쳤습니까?
— codeLes

실제로 그렇습니다. 이것이 SDL이 사용할 백엔드를 파악하는 방법입니다. 방금 구성 파일을 사용하기를 원하지만 SDL은 환경 변수를 사용하여 동작을 지시하는 데 상당히 일관성이 있습니다.
— Bernard


1
예, SDL을 재 컴파일하거나 환경 변수를 설정하는 것 중에서 선택할 수 있습니다. 올바른 선택을하고 있다고 생각합니다. : p 이것은 작동합니다 (즉, 쉘에서 작동합니다). 그놈이 문제인 쉘에서 시작되지 않은 앱의 변수를 전파하도록하는 것은 매우 어려운 문제 일뿐입니다. 지속적인 도움에 감사드립니다.
— Bernard

이것은 어떤 배포판입니까?! (gdm에 대한 설정이 실제로 따르기가 어렵다는 것에 동의한다. 따라서 "/ etc / gdm /을보고 스크립트를 읽는다"는 첫 번째 생각은 많은 고통이다. 여기에서 .profile은 잘 작동하는 것으로 보인다. (debian / testing)
— Anders Eurenius

답변:


6

SDL_AUDIODRIVER 변수가 어딘가에 설정 해제되었을 수 있습니다. 시작 스크립트와 관련된 문제에 사용하는 전략 중 하나는 파일을 작성 / 삭제하여 디버그 에코 명령문을 활성화 / 비활성화하는 간단한 방법입니다. 당신은 추가하여 시작할 수 있습니다

debug_msg() {
        test -f $HOME/.debug && echo "$@" 1>&2
}

debug_msg "running ~/.bashrc ($0), SDL_AUDIODRIVER = '$SDL_AUDIODRIVER'"

.bashrc, .bash_profile, .profile 및 / etc / profile을 사용하여 값이 있고 값이 변경되는 경우와 위치를 확인하십시오.


음, 그것은 저의 현재 생각이기도합니다. 그것은 '펄스'로 설정, 그리고 그 설정되고 있어야합니다 어딘가 오픈 수세에 의해. 집에 가면 탐정 작업을하겠습니다.
— Bernard

6

https://help.ubuntu.com/community/EnvironmentVariables 는 환경 변수를 설정할 수있는 네 곳에 대해 이야기합니다.

  • ~/.pam_environment-[…] 스크립트 파일이 아니라 한 줄에 하나씩 할당 표현식으로 구성됩니다. […] 변수를 초기화하려면 다시 로그인해야합니다. […]
  • ~/.profile -이것은 환경 변수 할당을 배치하기에 가장 적합한 파일 일 것입니다. 시작 프로세스 데스크탑 세션 중에 DisplayManager와 텍스트 콘솔에서 로그인 할 때 로그인 쉘에 의해 자동으로 실행되기 때문입니다.
  • ~/.bash_profile또는 ~/.bash_login-이러한 파일 중 하나가 존재하는 경우 bash는 로그인 쉘로 시작할 때 "~ / .profile"대신 실행합니다. (배시는 "~ / .bash_profile"보다 "~ / .bash_login"을 선호합니다). 그러나 이러한 파일은 기본적으로 그래픽 세션에 영향을 미치지 않습니다.
  • ~/.bashrc-우분투는 현재 기본적으로 다양한 스크립트 파일을 설정하는 방식 때문에 변수를 설정하는 것이 가장 쉬운 곳일 수 있습니다. 기본 구성은 거의 모든 bash 호출 및 로깅 중에이 파일이 실행되도록 보장합니다. 그래픽 환경에. 그러나 성능 측면에서는 값이 불필요하게 여러 번 설정되므로 최선의 방법이 아닐 수 있습니다.

http://userbase.kde.org/Session_Environment_Variables/en 은 KDE를위한이 장소를 제안합니다 :

KDE는 $HOME/.kde/env파일 이름이로 끝나는 스크립트를 실행 .sh하고 해당 환경 변수가 설정 한 모든 환경 변수를 유지합니다. 설정하려는 변수도 내 보내야합니다.

https://help.ubuntu.com/community/ComposeKey#XIM 은 ~/.gnomerc또는 수정을 제안합니다 ~/.Xsession.


1

.gnomerc$ HOME에 원하는 모든 변수를 설정 하는 쉘 스크립트 ( 예.bashrc :) 인 파일을 작성하십시오 .


불행히도 이것은 나를 위해 작동하지 않습니다.
— Bernard

gnome-terminal을 열어 보았는데 env에 표시되지 않는 것을 확인 했습니까?
— Mike McQuaid

1
@ Mike : 내 .bashrc에 있으므로 표시되지만 정확하지 않습니다. Emacs M-x getenv는 GUI 앱에 대해 재정의되지 않았 음을 확인합니다.
— Bernard

0

환경 변수 int .profile 또는 / etc / profile을 작성해 보셨습니까 ?

그것은 작동하고 이미 존재해야합니다. 터미널 세션 당 .bashrc 와 달리 세션에 로그인 할 때 시작됩니다.


아아, 효과가 없습니다.
— Bernard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.