差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
java:installanywhere:unstable:permssion_issue_on_linux [2018/03/13 11:10] tony |
java:installanywhere:unstable:permssion_issue_on_linux [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 1: | 行 1: | ||
+ | {{tag>InstallAnywhere}} | ||
====== InstallAnywhere - Permission Issue on Linux ====== | ====== InstallAnywhere - Permission Issue on Linux ====== | ||
===== Problem ===== | ===== Problem ===== | ||
這陣子安裝的自動測試,突然開始出現許多奇奇怪怪的問題。其中一樣,就是在某些Linux機器上出現腳本沒有執行權限:\\ | 這陣子安裝的自動測試,突然開始出現許多奇奇怪怪的問題。其中一樣,就是在某些Linux機器上出現腳本沒有執行權限:\\ | ||
{{:java:installanywhere:unstable:ia_execute_script_no_permission.png|}} | {{:java:installanywhere:unstable:ia_execute_script_no_permission.png|}} | ||
+ | ===== Review & Test ===== | ||
+ | 我們的安裝過程除了最後會針對所有執行檔去賦予權限外,沒有其它位置會將執行檔權限更改為可執行。然而,官方文件中有提及[[http://helpnet.flexerasoftware.com/installanywhere2012/Content/helplibrary/ia_ref_actions_expandarchive.htm|Expand Archive]]會賦予Default Permissions到解壓出來的檔案,下圖為我們Default Permissions:\\ | ||
+ | {{:java:installanywhere:unstable:ia_default_permission.png|}}\\ | ||
+ | 因此我寫一個腳本每0.5秒polling一次解壓與複製後的同一檔案。下圖為安裝步驟:\\ | ||
+ | {{:java:installanywhere:unstable:ia_review_permission_ops.png|}}\\ | ||
+ | 而下圖為測試結果:\\ | ||
+ | {{:java:installanywhere:unstable:install_mssql_test.png?|}}\\ | ||
+ | 可以發現Expand Archive執行後一直到Copy Folder,解壓縮檔案都還沒被賦予可執行權限;但一秒鐘後,就擁有可執行權限。\\ | ||
+ | 除以上測試外,我還嘗試著在這些動作前後加上列出檔案權限動作,但此舉卻造成了Bug消失。另外這個問題是在某天之後發生的,差別只有檔案大小。 | ||
+ | ===== Current Solution ===== | ||
+ | 根據以上測試結果,可以推測: | ||
+ | - Expand Archive後的權限賦予屬於非同步執行。 | ||
+ | - zip檔案越大越容易發生這個問題。 | ||
+ | 因此最後我們採取的策略是,使用之前就賦予可執行權限: | ||
+ | <code bash> | ||
+ | chmod +x executeScript.sh | ||
+ | ./executeScript.sh | ||
+ | </code> | ||
+ | ===== ===== | ||
+ | ---- | ||
+ | \\ | ||
+ | ~~DISQUS~~ |