![`make install` 显然由于拼写错误而失败,但不是在 makefile 中:如何查找和修复?](https://linux22.com/image/1116640/%60make%20install%60%20%E6%98%BE%E7%84%B6%E7%94%B1%E4%BA%8E%E6%8B%BC%E5%86%99%E9%94%99%E8%AF%AF%E8%80%8C%E5%A4%B1%E8%B4%A5%EF%BC%8C%E4%BD%86%E4%B8%8D%E6%98%AF%E5%9C%A8%20makefile%20%E4%B8%AD%EF%BC%9A%E5%A6%82%E4%BD%95%E6%9F%A5%E6%89%BE%E5%92%8C%E4%BF%AE%E5%A4%8D%EF%BC%9F.png)
我正在尝试安装富士通 USB 触摸屏来自的司机这里,在我的新富士通 LifeBook P1630 上的 Kubuntu 12.04 上。(参见P1630 上的 kubuntu 13.04(64 位)上的 fujitsu-usb-touchscreen:“make”错误。)我下载了 .zip 文件,解压后make
在创建的目录中运行;一切如预期。但是,当我运行sudo checkinstall
(调用make install
)时,事情就不那么顺利了。第一次尝试时,安装中止并出现以下错误:
make: execvp: /etc/init.d/fujitsu_touchscreen: Permission denied
make: *** [install] Error 127
我最终通过以下方式解决了这个问题
$ sudo chmod +x /etc/init.d/fujitsu_touchscreen
但是,尽管一秒钟sudo checkinstall
没有出现execvp
错误,但它仍然在稍后阶段失败,并且日志(在标准输出上)显示此dpkg
错误:
dpkg: error processing /home/archelon/fujitsu-touchscreen-driver/cybergene-fujitsu-usb-touchscreen-112fdb75b406/cybergene-fujitsu-usb-touchscreen-112fdb75b406_amd64.deb (--install):
unable to create `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy.dpkg-new' (while processing `/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy'): No such file or directory
确实没有/sys/module/fujitsu/usb/touchscreen/parameters/touch_maxy
;但是有 ,/sys/module/fujitsu_usb_touchscreen/parameters/touch_maxy
这大概就是预期的。但是这个错误的文件名没有出现在 makefile 或目录中的任何其他文件中,至少我找不到。它也没有出现sudo checkinstall --install=no
在 checkinstall 创建的 .deb 包中,正如我在按照下面的建议运行后发现的那样。
这样的印刷错误可能源自何处?我该如何修复它?
编辑后添加:ark
我正在使用Kubuntu 的默认工具查看 .deb 文件的内容。它仅包含三个文件: control.tar.gz
、data.tar.gz
和debian-binary
。data.tar.gz
包含与通常的根文件系统相匹配的目录树,包括 /etc、/lib、/sys 和 /usr 目录。(查看我系统上的其他 .deb 文件,此结构似乎很典型。)以下是屏幕截图:
。
(全尺寸。
下面是另一个屏幕截图,显示其中control.tar.gz
包含三个文件,其中一个是空的:
。
(全尺寸。
这是实际的 .deb 文件:https://www.dropbox.com/s/odwxxez0fhyvg7a/cybergene-fujitsu-usb-touchscreen_112fdb75b406-1_amd64.deb
编辑于 2013-09-28,添加:
重新安装 Kubuntu 12.04 后,这次重新创建 /home 分区(再次,该分区是在安装 13.04 时生成的),我再也无法重现此错误。我仍然很好奇下划线是如何变成斜线的,但似乎没人知道。也许还值得一提的是,虽然我还没有成功运行checkinstall
这个包,但我已经运行过了make install
;它需要可执行性/etc/init.d/fujitsu_touchscreen
和安装hal
,并且 GUI 在安装完成后不久就冻结了,之后我没有注意到任何特别的新功能,系统无法再从暂停状态恢复;但是,这将在其他地方进行。
答案1
checkinstall 有一个已知问题,它会生成文件系统错误,如您上面所演示的。在我自己使用 checkinstall 时,我经常在命令行中使用以下选项来绕过可能的错误:
sudo checkinstall --fstrans=no
手册页给出了以下内容:
--fstrans
启用/禁用文件系统转换。启用文件系统转换会导致安装在临时目录中进行,因此实际上不会影响您的系统。
这不是一个令人满意的解决方案,但是直到错误被修复之前它似乎是必需的......