我是Linux新手,我一直在尝试安装等离子小部件窗口应用菜单和窗口按钮。它们显示在小部件列表中,但没有图标,无法使用。
当我在解压缩文件的目录中运行sh install.sh时,我得到了以下信息:
install.sh: 1: [: -a: unexpected operator
mkdir: cannot create directory ‘build’: File exists
install.sh: 5: install.sh: cmake: not found
make: No targets specified and no makefile found. Stop.然后它问我密码,我得到:
make: *** No rule to make target 'install'. Stop.
我能得到一个关于如何正确安装的简单指南吗?
发布于 2019-09-01 20:33:34
构建该代码需要cmake命令,而您没有它。这似乎是真正阻止您的构建继续进行的原因,而不是[: -a: unexpected operator消息。所以首先安装cmake。有些软件需要构建一个非常新的cmake版本(如果需要的话,可以使用你可以安装),但大多数软件不需要。我建议您安装cmake包。
当您在Ubuntu系统上时,确保您有在您的Ubuntu系统上构建程序的常用工具链,这也是一个好主意,build-essential包将为您提供这些工具链。
这些命令将同时安装cmake和其他工具:
sudo apt update
sudo apt install build-essential cmake这可能足以使您成功地构建软件,或者至少能够克服当前面临的错误。但是,我建议您在继续之前删除build目录及其内容:
rm -r build在进一步排除了涉及从源代码中安装或删除软件或编辑文件(如果您愿意的话,甚至每次生成源代码时)的步骤后,我建议删除build目录并重新启动。
您所收到的关于-a的消息可能并没有阻止构建的成功。你也许可以忽略它们。如果您使用bash而不是sh,它们也可能消失,尽管我不认为这是最好的解决方案。如果您想摆脱它们,或者怀疑它们导致了问题,那么您可以编辑install.sh脚本以使用适当的测试(或者不使用测试),或者手动执行脚本执行的操作。因此,如果你想对此做些什么,请看下面的细节。
在小程序-窗口按钮和小程序-窗口-应用菜单的源代码中,install.sh当前的完整内容如下:
if ! [ -a build ] ; then
mkdir build
fi
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr .. -Wnodev
make
sudo make install这是您试图使用sh运行的文件,该文件正在产生错误。它对-a测试的使用非常奇怪。-a通常出现在两个其他表达式之间,当两个表达式都为真时,会导致[返回true。
在Ubuntu中,sh由dash提供。如果您使用bash而不是dash,它可能会工作(或者看起来有效)。也许这就是作者所做的。但是,我建议您要么修复脚本,要么手动执行它所做的操作,而不是这样做。
如果您想要修复脚本,一种方法是将-a替换为-e或-d。-e测试接受一个文件名操作数并检查它是否存在;-d检查它是否存在并且是一个目录。另一种修复脚本的方法是完全删除if和fi行;如果目录存在,mkdir将失败,但这没有问题。
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr .. -Wnodev
make
sudo make install但是这个脚本所做的就是创建一个build目录(如果没有),用cd转换成它,运行带有参数的cmake,运行make,然后运行sudo make install。你可以自己做这些事。这样做的一种方法是在交互式shell中一个接一个地运行这些命令。
这有好处。正如所写的,脚本不会仅仅因为某些步骤报告失败而停止,但是您可能想要停止。您可以对脚本进行进一步的修改以实现这一点(除了第一行和最后一行使用&&结束),但是如果您不打算多次编译代码,那么您可能更容易自己运行这些命令。
发布于 2021-08-20 05:37:28
我也面临着一些问题。在Kubuntu 21.04上建造了它。应记住以下几点
https://askubuntu.com/questions/1167770
复制相似问题