问题标签 [post-install]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
186 浏览

electron - 当 package.json 包含安装后脚本时,为什么 Node 串行端口会失败?

添加此语句

到 Electron-serialport-quick-start ( https://github.com/serialport/electron-serialport-quick-start ) 导致 'npm run start' 失败(在 'rm -rf node_modules'、'rm package-lock. json', 'npm i' 命令序列)如下,如果推荐的 'postinstall' 脚本包含在 package.json 中:

有或没有可选的构造函数参数都会出现故障,同样,如果 autoOpen 设置为 false 并且随后调用 port.open (据我所知,port.open 的回调在串行端口文档中未被标识为选项)。

不知道这是串口还是安装后脚本问题,但如果从以下 package.json 中省略安装后脚本,可以确认端口打开时没有错误:

该问题出现在 Windows VS Code git bash 环境中;它尚未在其他平台上进行过测试。

0 投票
1 回答
129 浏览

bash - 从 macOS 应用程序的安装前/安装后脚本安装 brew

在我Packages.apppreinstall脚本中,我能够从 brew 的修改版本安装 brew,该版本install.sh删除了sudo检查:

这是我从 brew's中删除install.sh以使其正常工作的行:

我不知道究竟"${EUID:-${UID}}"是什么。

这是我迄今为止尝试过的,而不是使用su root

尤其是试图从这里添加$USERadmin组:https ://apple.stackexchange.com/a/76096/261453


有什么想法/解决方案吗?

0 投票
0 回答
42 浏览

linux - 已安装 rpm 的安装后脚本状态

进程 1 运行: rpm -ivh package-with-long-running-postinstall.rpm

过程 2:他应该怎么做才能确保 package-with-long-running-postinstall完全安装并成功运行 postinstall(或至少完全运行)?运行rpm --query package-with-long-running-postinstall会说该软件包已经安装在 postinstall 脚本调用的中间,这为无数的竞争条件选项打开了可能性。

0 投票
1 回答
190 浏览

node.js - 带有已发布包的 npm postinstall 脚本

我刚刚创建了我的包并将其发布到工件注册表。这个包有postinstall脚本,如果我npm i在包目录中执行,即使没有node_modules目录。

我使用来自 npm 的内部postinstall脚本patch-package来覆盖一些依赖项。

问题是当我在其他项目中使用npm i -s @my/package. 当postinstall脚本执行时,它不会找到那些包并抛出错误。

我试图patch-package在父目录中执行,但无论如何都找不到这些包。

知道我能做些什么来解决这个问题吗?

0 投票
1 回答
52 浏览

deb - 在 DEB 安装后将用户添加到组而不重新启动

在我的 deb 包中,我将用户添加到postinst脚本中的“拨出”组:

我希望在不重新启动的情况下应用新设置:

但是有一个麻烦:newgrp将用户登录到新会话,所以我们在安装时挂起(您应该exit在控制台中输入)。所以,这样的命令不适合 deb-postinstall。

还有其他可能吗?

0 投票
0 回答
39 浏览

npm - npm 包 - 安装后未触发

我想触发 npm 包的 postinstall 钩子。

该包的 package.json 如下所示:

npm 文档在该主题上相当稀疏。

似乎 postinstall 挂钩仅针对执行的项目根目录中的 package.json 触发,npm i而不针对在npm i. 那是对的吗?

Prisma在安装期间正在执行脚本,它们似乎将自己的逻辑添加到根 package.json 中。我只是不确定他们如何能够npm i在第一时间触发该代码。

似乎 postinstall 挂钩是在部署到 Google Cloud(以及可能的其他云环境)上的 App Engine 期间执行的。为什么不在本地执行?有什么区别?

0 投票
1 回答
148 浏览

react-native - 如何仅在 MacOS 上运行 npm postinstall 脚本

如何将postinstall脚本限制为仅在 macOS 上运行?

我的 React 本机库中有一个 shell 脚本,需要在 npm 安装完成后启动它。

这很好用,postinstall但问题是 Windows 无法执行 shell 脚本。

我需要一种方法来限制它,只在 macOS 上运行。

我尝试使用这个库,但它不适用于我的情况 https://www.npmjs.com/package/cross-os

0 投票
1 回答
84 浏览

bash - 回滚 Debian 安装程序中 PostInst 脚本中的错误

对于 Debian 安装程序脚本,如果 postinst 脚本中有错误或用户使用 Ctrl+C 终止进程,是否可以回滚整个安装?看起来即使我返回一个非零退出代码,它仍然会安装程序。

0 投票
1 回答
388 浏览

windows - Windows 10 OOBE 安装后:如何允许 PowerShell Add-AppxPackage?

关于上次官方 Win 10 LTSC-Release 上缺少 AppxPackage 错误,我想在 Windows 设置处理的后期设置中自动安装它:开箱即用体验 (OOBE),首次启动 UI。因此,我有 .appx 文件并将以下行放在 SetupComplete.cmd 中:

我可以在非提升的 PowerShell 控制台中手动执行此行,但不幸的是,这在 Windows 安装程序处理中无法自动运行,如日志中所述(抱歉,它是德语):

Add-AppxPackage:Fehler bei Bereitstellung。HRESULT:0x80073CF9,Fehler bei der 安装。Wenden Sie sich an den Softwarehersteller。(Ausnahme von HRESULT: 0x80073CF9) Der Bereitstellungsvorgang Add fr das Paket "Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe" von der Installationsanforderung "Microsoft.VCLibs.140.00_14.0.30704.0_x64__8wekyb3d8bbwe.appx" wurde abgelehnt, da dieser Vorgang mit dem lokalen Systemkonto nicht ausgefhrt werden darf。HINWEIS: Wenn Sie weitere Informationen wnschen, suchen Sie im Ereignisprotokoll nach [ActivityId] 895ecdc3-eb9b-0002-0fcf-5e899bebd701, oder verwenden Sie die Befehlszeile Get-AppxLog -ActivityID 895ecdc3-eb9b-0002-0fcf-5e899bebd701 在 Zeichen :1

  • 添加-AppxPackage C:\Windows\Setup\Files\Microsoft.VCLibs.140.00_14.0.3 ...

为什么本地系统帐户无法安装该软件包?

0 投票
1 回答
50 浏览

python - Python subprocess.Popen 通过修改环境以在 postinst 脚本中使用新的环境变量

我有一台服务器来安装包含postinst脚本的不同 debian 软件包。

一些软件包需要一个修改过的环境,其中包含一些要连接的端口。

当我调用服务器安装包时,我在请求中传递了一个vars包含自定义端口的对象参数: {'vars': {'CUSTOM_PORT_1': '7755', 'CUSTOM_PORT_2': '7766'}}

在我的代码中,我调用subprocess.Popen运行将安装 debian 包的命令。这是我的代码:

我希望修改后的环境将通过传递给postinst脚本,env=my_env这样我就可以将它们打印出来。该postinst脚本运行一个应用程序,该应用程序使用修改后的环境中的这些端口,因此我必须在运行应用程序之前将它们导出。这是postinst脚本中的代码:

不幸的是,这是输出:

我必须提到我还subprocess.Popen以其他几种方式尝试了这条线:

1.

有什么我想念的吗?

我的期望合理吗?

这甚至可能吗?