TL,DR:我希望能够通过双击 .desktop 文件来启动具有 root 权限的 GUI 应用程序,并保留良好(相对于 sudo 方式)的非 sudo 方式主题。
我在这里查看了相关的问题/答案,但是,我不能说我了解情况并找到了解决方案。要么它们结构不合理且缺乏说明性,要么我就是没有理解。或者他们大多数都提到了gksu
,但是,据我所知,gksu
已从存储库中删除。我无法安装它。
屏幕截图可在问题末尾找到。
我知道这将是一个混乱的问题,请原谅我。
现在,我的电脑上安装了 Quartus 程序,我可以通过(屏幕截图左侧)运行它:
/home/muyustan/altera/13.1/quartus/bin/quartus --64bit
我还创建了一个.desktop
如下文件:
[Desktop Entry]
Type=Application
Version=0.9.4
Name=Quartus II 13.1 (64-bit) Web Edition
Comment=Quartus II 13.1 (64-bit)
Icon=/home/muyustan/altera/13.1/quartus/adm/quartusii.png
Exec=/home/muyustan/altera/13.1/quartus/bin/quartus --64bit
Terminal=false
Path=/home/muyustan/altera/13.1
到目前为止一切顺利,我可以通过桌面入口运行它,没有终端窗口弹出并停在那里(够烦人的)。一切都很好。
然而,我发现在 Quartus 应用程序的一部分中,它必须打开(调用)另一个程序(Modelsim)并将一些文件保存到某些地方等。问题是,如果我不在sudo
它前面启动该应用程序(屏幕截图的右侧),我会收到一些错误提示permission denied
,事情根本无法正常工作。
因此,我可以通过改变我的启动习惯来解决这个问题,
from -- double click on the desktop entry
to -- Ctrl+Alt+T -> sudo [executablePath] -> enter password
现在,显然我不想要这个,主要有两个原因。
- 需要更长的时间。
- 只要应用程序处于打开状态,该终端就会停留在那里。
就在此时,出现了第三个(额外)原因,您可能从屏幕截图中注意到了,也可能没有注意到,启动时sudo
GUI 主题看起来像 Windows XP 风格...顺便说一下,当我第一次安装 Quartus 时,我没有选择/更改任何主题。
因此,我希望我已经清楚地表达了我的观点。
提前致谢。
问题更新
根据评论中某人的请求,查看我在被调用(从 Quartus 内部启动)应用程序 Modelsim 中遇到的错误:
do temp1_run_msim_rtl_verilog.do
# if {[file exists rtl_work]} {
# vdel -lib rtl_work -all
# }
# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work".
# Permission denied. (errno = EACCES)
# ** Error: /home/muyustan/altera/13.1/modelsim_ase/linux/vdel failed.
# Error in macro ./temp1_run_msim_rtl_verilog.do line 4
# /home/muyustan/altera/13.1/modelsim_ase/linux/vdel failed.
# while executing
# "vdel -lib rtl_work -all"
# invoked from within
# "if {[file exists rtl_work]} {
# vdel -lib rtl_work -all
# }"
答案1
用户收到此错误消息:
# ** Error: (vdel-19) Failed to access library 'rtl_work' at "/home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work". # Permission denied. (errno = EACCES)
从使用来看sudo
,我预计一些文件夹/文件是以 root 权限级别创建的。
我们在“altera”文件夹中生成了整个树的列表,以验证所有权和权限。使用:
find /home/muyustan/altera -type d -exec stat -c '%A %G %U %n' {} \; > log.txt
查找该文件夹
temp1
或用户/组root
,你可以看到有 root 拥有的文件夹drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/qsim/work/up_counter drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/qsim/work/prime_detector_4bits_vlg_check_tst drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/_temp drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/up_counter_tb drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/qsim/rtl_work/up_counter drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/simulation/modelsim drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work/prime_detector_4bits drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/gate_work/_temp drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work/_temp drwxr-xr-x root root /home/muyustan/altera/13.1/temp1/simulation/modelsim/rtl_work/up_counter drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/db drwxrwxr-x muyustan muyustan /home/muyustan/altera/13.1/temp1/incremental_db
将该 altera 文件夹及其所有子文件夹和文件的所有权更改为您的用户和组。
sudo chown -R muyustan:muyustan /home/muyustan/altera
尝试再次运行 Quartussudo