我正在尝试为 Debian 打包 Rust 应用程序,但遇到了一些问题。我尝试构建
debuild -us -uc
但它给出了错误
Running "rustc --version" gave "[Errno 2] No such file or directory: 'rustc': 'rustc'"
从命令cd debian/build && meson --prefix=/usr ../..
但是当尝试手动运行它时,它不会给出任何错误。为什么看不到rustc
?
答案1
debuild
根据手册页,出于安全原因有意对环境进行消毒:
由于环境变量可能会影响包的构建,因此 debuild 通常会无意中通过删除除、
TERM
、HOME
、LOGNAME
、GNUPGHOME
、PGPPATH
、GPG_AGENT_INFO
、GPG_TTY
、DBUS_SESSION_BUS_ADDRESS
、FAKEROOTKEY
、DEBEMAIL
、DEB_*
(C
、CPP
、CXX
和)变量及其对应项和语言环境之外的所有环境变量来清理环境变量和.如果未设置则设置为,如果未设置则设置为。LD
F
FLAGS
_APPEND
LANG
LC_*
TERM
dumb
PATH
/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11
一般来说,您不应该使用不是 Debian 软件包的软件来构建 Debian 软件包,因为不可能生成可重复的构建,并且其他人也无法在您的环境之外构建该软件包。因此,最好的解决方案是使用 Debianrustc
软件包,使用 Debian stable 中的较新版本,或者rustc
如果需要的话构建一个较新版本。如果您确定确实想这样做并彻底了解后果,可以使用配置选项来调整PATH
环境变量。