InstallAnywhere - Permission Issue on Linux

這陣子安裝的自動測試,突然開始出現許多奇奇怪怪的問題。其中一樣,就是在某些Linux機器上出現腳本沒有執行權限:

我們的安裝過程除了最後會針對所有執行檔去賦予權限外,沒有其它位置會將執行檔權限更改為可執行。然而,官方文件中有提及Expand Archive會賦予Default Permissions到解壓出來的檔案,下圖為我們Default Permissions:

因此我寫一個腳本每0.5秒polling一次解壓與複製後的同一檔案。下圖為安裝步驟:

而下圖為測試結果:

可以發現Expand Archive執行後一直到Copy Folder,解壓縮檔案都還沒被賦予可執行權限;但一秒鐘後,就擁有可執行權限。
除以上測試外,我還嘗試著在這些動作前後加上列出檔案權限動作,但此舉卻造成了Bug消失。另外這個問題是在某天之後發生的,差別只有檔案大小。

根據以上測試結果,可以推測:

  1. Expand Archive後的權限賦予屬於非同步執行。
  2. zip檔案越大越容易發生這個問題。

因此最後我們採取的策略是,使用之前就賦予可執行權限:

chmod +x executeScript.sh
./executeScript.sh