我正在通过文件安装 Quartus 软件套件setup.sh
。最初尝试chmod
,我尝试运行 shell 可执行文件
通过 ./setup.sh
bash: ./setup.sh: /bin/env: bad interpreter: No such file or directory
然后通过sudo ./setup.sh
。
sudo: unable to execute ./setup.sh: No such file or directory
最后,sudo bash setup.sh
在终端中使用该命令会给出一个有用的错误:
You must have the 32-bit compatibility libraries installed for the Quartus II installer and software to operate properly.
setup.sh: line 106: /home/matt/Downloads/Software Packages/Quartus-web-13.1.0.162-linux/components/QuartusSetupWeb-13.1.0.162.run: Permission denied
setup.sh: line 106: exec: /home/matt/Downloads/Software Packages/Quartus-web-13.1.0.162-linux/components/QuartusSetupWeb-13.1.0.162.run: cannot execute: Permission denied`
我已经尝试下载了以下库,如Quartus 在线安装和许可手册。这涉及安装以下先决条件库,分别列出 ModelSim 软件(64 位)和 Quartus(32 位依赖):
sudo apt-get install
- unixodbc unixodbc-dev libncurses-dev libzmq3-dev libxext6 libasound2 libxml2 libx11-6 libxtst6 libedit-dev libxft-dev libxi6
- libx11-6:i386 libxau6:i386 libxdmcp6:i386 libxext6:i386 libxft-dev:i386 libxrender-dev:i386 libxt6:i386 libxtst6:i386
其提供了以下信息:
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libncurses5-dev' instead of 'libncurses-dev'
libasound2 is already the newest version (1.1.0-0ubuntu1).
libncurses5-dev is already the newest version (6.0+20160213-1ubuntu1).
libx11-6 is already the newest version (2:1.6.3-1ubuntu2).
libxext6 is already the newest version (2:1.3.3-1).
libxi6 is already the newest version (2:1.7.6-1).
libxtst6 is already the newest version (2:1.2.2-1).
unixodbc is already the newest version (2.3.1-4.1).
unixodbc-dev is already the newest version (2.3.1-4.1).
libx11-6:i386 is already the newest version (2:1.6.3-1ubuntu2).
libxau6:i386 is already the newest version (1:1.0.8-1).
libxdmcp6:i386 is already the newest version (1:1.1.2-1.1).
libxext6:i386 is already the newest version (2:1.3.3-1).
libxft-dev:i386 is already the newest version (2.3.2-1).
libxrender-dev:i386 is already the newest version (1:0.9.9-0ubuntu1).
libxt6:i386 is already the newest version (1:1.1.5-0ubuntu1).
libxtst6:i386 is already the newest version (2:1.2.2-1).
libzmq3-dev is already the newest version (4.1.4-7).
libxml2 is already the newest version (2.9.3+dfsg1-1ubuntu0.2).
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
libxft-dev : Conflicts: libxft-dev:i386 but 2.3.2-1 is to be installed
libxft-dev:i386 : Conflicts: libxft-dev but 2.3.2-1 is to be installed
E: Unable to correct problems, you have held broken packages.
无论libxft
我安装哪种架构,使用 bash 命令运行时,shell 可执行文件都会出现相同的错误消息。您知道我遗漏了什么吗?如何解决此冲突?
答案1
对自己解决问题的能力要有一点信心,并且深入挖掘一下!
通过查看(即使用vim setup.sh
)shell 文件,可以获得它所检查的依赖项列表。在 shell 脚本中,我发现:
for item in libstdc++ glibc libX11 libXext libXau libXdmcp freetype fontconfig expat
已安装等效的 Ubuntu 库:
sudo apt-get install libstdc++6:i386 libc6:i386 libx11-dev:i386 libxext-dev:i386 libxau-dev:i386 libxdmcp-dev:i386 libfreetype6:i386 fontconfig:i386 expat:i386
在进一步查看脚本后,我意识到无论模块是否存在,通过观察 shell 代码,32 位库依赖关系都会打印出来,于是我回到了实际误差, 如上。
setup.sh: line .../QuartusSetupWeb-13.1.0.162.run: Permission denied
setup.sh: line 106 exec: ... 162.run: cannot execute: Permission denied
具体来说,使用bash setup.sh
或的命令sudo bash setup.sh
无法执行这些.run
文件,因为这些文件的权限属性。一个简单的修复,允许这些列出的文件可执行权限,解决了所有问题。
chmod +x QuartusSetupWeb-13.1.0.162.run
答案2
检查 shebang 解释器指令,查看 setup.sh 实际使用了哪个 sh 解释器。在 Quartus 9.0 的情况下,它
"#!/bin/csh"
表示 C-shell,默认情况下未安装在 Ubuntu 中。