Estou tentando encontrar o .desktop
arquivo para qtcreator, então escrevo isso:
$ for p in ${XDG_DATA_DIRS//:/ }; do
grep -rni 'qtcreator' $p;
done
E aqui estão as linhas mais relevantes:
/usr/share/app-install/desktop/qtcreator-plugin-ubuntu:ubuntusdk.desktop:2:X-AppInstall-Package=qtcreator-plugin-ubuntu
/usr/share/app-install/desktop/qtcreator-plugin-ubuntu:ubuntusdk.desktop:6:Exec=qtcreator %F
/usr/share/app-install/desktop/qtcreator-plugin-ubuntu:ubuntusdk.desktop:7:Icon=ubuntu-qtcreator
/usr/share/app-install/desktop/qtcreator:qtcreator.desktop:2:X-AppInstall-Package=qtcreator
/usr/share/app-install/desktop/qtcreator:qtcreator.desktop:6:Exec=qtcreator %F
/usr/share/app-install/desktop/qtcreator:qtcreator.desktop:7:Icon=QtProject-qtcreator
/usr/share/app-install/desktop/qhimdtransfer:qhimdtransfer.desktop:12:#Icon=qtcreator_logo_32
Eu acho que qtcreator:qtcreator.desktop
é a entrada da área de trabalho para o QtCreator, então eu abro e descubro:
[Desktop Entry]
X-AppInstall-Package=qtcreator
X-AppInstall-Popcon=292
X-AppInstall-Section=universe
Exec=qtcreator %F
Icon=QtProject-qtcreator
Type=Application
Terminal=false
Name=Qt Creator
GenericName=Integrated Development Environment
MimeType=text/x-c++src;text/x-c++hdr;text/x-xsrc;application/x-designer;application/vnd.nokia.qt.qmakeprofile;application/vnd.nokia.xml.qt.resource;
Categories=Qt;Development;IDE;
InitialPreference=9
X-Ubuntu-Gettext-Domain=app-install-data
qtcreator não está na variável $PATH do shell . Mas ainda posso iniciar o QtCreator na unidade do gnome.
Nas variáveis freedesktop-exec, notei
Se nenhum caminho completo for fornecido, o executável será pesquisado na variável de ambiente $PATH usada pelo ambiente de desktop.
Pergunta
A variável de ambiente $ PATH de um ambiente de desktop é diferente de um shell?
Em caso afirmativo, onde está o arquivo de configuração contendo a variável $PATH para ambiente de desktop?
Eu instalo uma versão mais recente do QtCreator, em seguida, inicio o QtCreator na área de trabalho e descubro que ele faz referência à versão mais recente sem alterar o qtcreator:qtcreator.desktop
arquivo. Acho que tem algo a ver com o caminho do qt?
Ambiente de trabalho: gnome
SO: Ubuntu16.04
Editar
O problema real que encontrei não foi sobre $ PATH (veja minha resposta). A resposta de Gilles é na verdade a resposta para 'A variável de ambiente $PATH de um ambiente de desktop é diferente daquela em um shell?' então aceitei caso alguém tenha a mesma dúvida que eu.
Pode ser.
O ambiente de um programa não vem de um arquivo, a menos que o programa faça o possível para ler as variáveis de ambiente de um arquivo. Cada processo herda o ambiente de seu pai. Ler variáveis de ambiente de um arquivo é parte do trabalho do programa que você executa no login (um shell ao fazer login em modo texto, um gerenciador de sessão ou o programa que atua como tal ao fazer login em um ambiente gráfico). Portanto, normalmente, se você usar seu ambiente de desktop e abrir um shell em um terminal, esse shell terá o mesmo ambiente que o ambiente de desktop.
No entanto, na prática, isso pode não ser o caso, porque há uma tonelada de conselhos na web dizendo às pessoas para colocar definições de variáveis de ambiente em arquivos
.bashrc
. Isso é uma má ideia porque significa que essas variáveis de ambiente não estão disponíveis para programas iniciados diretamente da GUI, em vez de serem iniciados a partir de um terminal. Mas se você fez isso, você pode descobrir que tem variáveis de ambiente diferentes em um terminal em comparação com o que você tem no ambiente de desktop e em programas não iniciados a partir de um terminal.Colocar definições de variáveis de ambiente em
~/.profile
funciona na maioria dos sistemas. Acho que funciona para o Gnome no Ubuntu 16.04, desde que você não ative o Wayland (o que quebra muitas coisas, incluindo configurações de login e nem sempre oferece uma maneira de recuperar).De qualquer forma, o sintoma usual de colocar variáveis de ambiente no lugar errado é que as variáveis de ambiente estão presentes em um terminal, mas ausentes no ambiente de desktop. Para que seja o contrário, você teria que ter algo incomum em seus arquivos de inicialização do shell.
Duvido muito, se estiver instalado. O Ubuntu vem onde é onde a maioria dos programas está localizada
qtcreator
./usr/bin
Mas note que
$PATH
não tem nada a ver com a localização do.desktop
arquivo.$PATH
é para programas aplicativos, não para.desktop
arquivos. Se você estiver procurando o.desktop
arquivo paraqtcreator
, e tiver oqtcreator
pacote instalado, basta procurar pelo arquivo :/usr/share/applications
é o local padrão para.desktop
arquivos.Se você instalou sua própria versão do QtCreator além da do Ubuntu, você deve garantir que
qtcreator
esteja no caminho de pesquisa do comando, ou seja,$PATH
. Se você o instalou em todo o sistema, deve tê-lo disponível como/usr/local/bin/qtcreator
, que está no caminho de pesquisa do comando antes/usr/bin
de , para obter sua versão de preferência à do sistema. Se você o instalou em sua conta, crie um link simbólico de onde quer que oqtcreator
executável esteja para~/bin/qtcreator
, ou seja, para o diretóriobin
sob seu diretório home (se este diretório não existir, crie-o). O padrão do Ubuntu.profile
adiciona~/bin
à frente do$PATH
.Acontece que esse
$XDG_DATA_DIRS
não é o único caminho de pesquisa para*.desktop
o arquivo. Então eu encontrei o arquivo de entrada da área de trabalho QtCreator errado.Consulte a especificação do diretório base do XDG
Encontrei o verdadeiro arquivo de entrada da área de trabalho do QtCreator
~/.local/share/application/DigiaQt-qtcreator-community.desktop
.A linha Exec é
Exec=/home/user/Qt/Tools/QtCreator/bin/qtcreator
, então o problema não é sobre$PATH
.Eu instalei a versão mais antiga e mais recente do QtCreator da fonte. Existe um
InstallationLog.txt
diretório em Qt. A ação de copiar o arquivo da área de trabalho~/.local/share
está documentada lá.