首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shebang被rpmbuild破坏

Shebang被rpmbuild破坏
EN

Stack Overflow用户
提问于 2021-04-22 23:01:19
回答 1查看 181关注 0票数 0

当我构建我的rpm包时,我的脚本文件中的shebang正在被更改。以下是带有shebang的文件内容示例:

代码语言:javascript
复制
#!/usr/bin/env -S npx ts-node -T

// Some Typescript code
let myArray:Array<number> = new Array<number>();
myArray.push(1);
myArray.push(2);
myArray.push(3);
console.log(myArray);

RPM构建消息

代码语言:javascript
复制
mangling shebang in /home/userx/bin/js/utils/test.ts from /usr/bin/env -S npx ts-node -T to 
#!/usr/bin/-S npx ts-node -T

安装后的结果文件:

代码语言:javascript
复制
#!/usr/bin/-S npx ts-node -T

// Some Typescript code
let myArray:Array<number> = new Array<number>();
myArray.push(1);
myArray.push(2);
myArray.push(3);
console.log(myArray);

RPM构建是在安装时在同一台机器上完成的。/usr/bin/env存在。脚本运行时没有出现原始形式的错误。任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2021-04-24 06:26:41

我在fedora-packaging小组中遇到了一个提交的问题#738。基本上,问题出在使用shebangs的旧python脚本上。的请求。

代码语言:javascript
复制
#!/usr/bin/env <anything>

代码语言:javascript
复制
#!/usr/bin/<anything>

三年前就被接受了。为了适应rpmbuild的破坏,我的解决方案是破坏将要破坏的shebang,如下所示:

代码语言:javascript
复制
#!/usr/bin/env env -S npx ts-node -T

这将导致我的脚本包含以下内容:

代码语言:javascript
复制
#!/usr/bin/env -S npx ts-node -T

尽管在打包生产之前进行本地测试非常不方便,但它似乎是目前最好的解决方案。

另一个想法是让shebang成为:

代码语言:javascript
复制
#!/usr/bin/envts -S npx ts-node -T

它不会被rpm构建破坏。然后我将创建一个符号链接

代码语言:javascript
复制
ln -s /usr/bin/env /usr/bin/envts

这样我的Typescript脚本就会运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67215852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档