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


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.