A. electron 打包總是報 版本錯誤
前言:研究electron自動更新的時候,在electron的官方文檔auto-updater 中,提到了在幾個平台mac,linux,windows下electron 的自動更新方法,其中windsow平台上面,文章中建議先用grunt-electron-installer 模塊來創建windows安裝包,grunt這個工具是由Squirrel集成的。進而了解下Squirrel這個工具,
一個可以用來給electron應用的安裝更新卸載添加快捷方式的工具。本文主要提及如何在windows平台下,用Squirrel創建electron的.exe安裝包。
創建nuget包
我們的方法是使用nuget工具創建Nuget包,再使用Squirrel工具創建.exe。
1.下載squirrel.exe和nuget.exe,也可以選擇直接安裝Squirrel.Windows (需要有vitual
studio環境)。
2.新建文件夾如my-build,把下載好的squirrel.exe,nuget.exe和setup.exe
放進去,在文件夾放入我們未打包的electron應用,如下圖:
4.在my-build根目錄中,打開命令行執行nuget spec
如下圖:
生成 spec包初始文件
5.編輯器打開 Package.nuspec,按照自己項目的需要編輯這個文件,如下圖:
這里需要注意:根據Squirrel文檔說明,target folder 屬性需要設置為lib/net45,否則並沒有用;<iconUrl>標簽用來制定未來的exe的icon。
5.用下面的命令創建一個nuget包,
nuget pack Package.nuspec
如下圖:
之後在目錄中會出現這個包
命名規則就是<my_app_name>.<version>.nupkg
創建安裝程序
把應用程序打包成nuget包之後,就可以用squirrel創建一個安裝程序了。在根目錄打開命令行,執行以下命令:
squirrel --releasify <my_app_name>.<version>.nupkg
這個時候命令行中沒有任何提示。但是別慌,編譯一段時間後程序會創建一個release文件夾,裡面有三個文件,nuget包,RELEASES 文件和安裝文件Setup.exe。如下圖:
如果沒有出現這三個文件,可以查看目錄中的SquirrelSetup.log,根據裡面的報錯,來進行調試。
注意上面這條squirrel 命令,可以用來設置setup.exe在安裝過程中用傳統icon還是用自定義的圖片文件。使用Squirrel --help可以查看更多幫助
發布應用和安裝應用
把上一步生成的setup.exe發送給想要安裝這個應用的用戶,就可以了。
最終應用會被安裝在C:\Users\Administrator\AppData\Local\[appname] 文件夾中,注意Squirrel 的日誌文件也存在目錄中,調試安裝問題的時候非常有用。
雙擊我們的setup.exe進行安裝app的測試,如果中途有任何出錯,在
C:\Users\Administrator\AppData\Local\SquirrelTemp 裡面可以看到安裝日誌。如下圖:
安裝之後打開C:\Users\Administrator\AppData\Local 目錄,可以看到app安裝在這里,如下圖:
自動創建快捷方式
進入我們安裝之後的文件夾,命令行進入C:\Users\Administrator\AppData\Local\[your appname],執行 Update.exe --help ,可以看到
不知道從上圖你有沒有得到什麼提示,反正我發現了,在命令行手動創建快捷方式的命令是Update.exe --createshortcut electron\electron.exe -i [your ico toute]\app.ico
所以,如果我們想讓應用在安裝過程中靜默地創建好快捷方式,那就需要在app的安裝之後相反設法執行這句代碼。
因為我們的.exe會在安裝之後自動打開程序,所以我在程序的入口main.js,添加sqruieel事件的監聽就好了。如下圖:
我順便把程序卸載時,刪除快捷方式的監聽事件也寫了進去。還有程序的更新和刪除事件監聽,但是這兩個事件,我還沒有進行測試。
更新應用
其實我一直很想做增量更新,在這里我的更新方法有兩個,第一是在程序的入口添加js,發送請求到伺服器,拉取更改文件進行本地替換,但是如果是node_mole依賴包的更改,這個方法並不可行。第二個方法比較安全而且快捷通過發布一個版本號不同的exe,如下:1.在這個創建安裝程序的步驟2中,我們把程序代碼都復制到了這個文件夾裡面,如下圖:
如果後續我們的程序要進行更新,首先我們需要把更改的文件直接復制替換到這個文件夾。
2.打開Package.nuspec,編輯version標簽
3.參考本文種中創建安裝程序部分的步驟2-4,重新生成setup.exe,發布應用。
通過執行setip.exe安裝,程序會自動刪除之前的應用,但是我並不清楚,sqruieel 是進行了增量替換,還是將之前的整個應用進行刪除,再重新安裝。
創建自定義安裝包
在上一步,我們已經把自己的exe發布出來了,但是如果沒有自定義名字跟icon,好像還不夠酷,所以我們需要創建自定義的安裝文件。
1.下載安裝 Resource
Hacker
2.打開這個項目目錄,在electron.exe上面右鍵
出現菜單,點擊 Open using Rescource Hacker。
3.Resource Hacker應用運行之後中,在以下界面中選擇Icon,然後在工具欄裡面選擇Action,Replace
Icon,如下圖:
然後選擇自己想要替換的.ico文件就好
4.這其實並不夠,我們還需要更換exe裡面的版本信息,打開Version
Info,把FileDescription和ProctName改成我們自己的項目名稱,最好把SquirrelAwareVersion也更改一下,畢竟是版本號。
5.做完這些之後,我們需要按照之前的步驟,在命令行中輸入
nuget pack Package.nuspec
重新生成nuget包,然後再使用
squirrel --releasify <my_app_name>.<version>.nupkg 命令創建安裝文件。
6.打開之後生成的releases文件夾,參考本文種中創建安裝程序部分的步驟2-4,對setup.exe進行自定義。
最後,一個可以自動更新又安裝便捷,還有我們自己的酷酷的圖標跟名字的應用就生成拉!
B. 求助求助 red hat linux操作系統實現electron模塊載入的指令
內核模塊的程序結構
模塊載入函數(必須)
當通過insmod或modprobe命令載入內核模塊時,模塊會自動被內核執行,完成模塊的相關初始化工作。
一般以 __init標識聲名函數,並且用「mole_init(初始化函數名)」來初始化
模塊卸載函數
模塊許可證聲名
模塊參數
模塊導出符號
模塊作者等信息聲名
獨立編譯Makefile
#makefile for kernel mole
MODNAME=helloworld
ifeq ($(PLATFORM), PC)
KERNELDIR?=/lib/moles/$(shell uname -r)/build
else
KERNELDIR?=你的linux源碼編譯路徑
endif
obj-m := $(MODNAME).o
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) moles
clean:
@rm -rf *.o *.ko *.mod.* *.tmp* mole* Mole*
123456789101112131415
注意ifeq 後面要有個空格
模塊測試源碼
#include <linux/init.h>
#include <linux/mole.h>
static int __init helloworld_init(void)
{
printk(KERN_DEBUG "My first hello world kernel mole!\n");
return 0;
}
static void __exit helloworld_exit(void)
{
printk(KERN_DEBUG "Bye,cruel world !\n");
}
mole_init(helloworld_init);
mole_exit(helloworld_exit);
1234567891011121314151617
編譯
初始化變數 export PLATFORM=PC
編譯: make
執行make後得到對應的.ko文件
模塊載入及卸載
insmod helloworld.ko
rmmod helloworld
執行載入命令時我們希望列印 My first hello world kernel mole!
卸載時我們希望能列印 Bye,cruel world !
然而實際上什麼都沒列印,lsmod查看helloworld.ko有成功載入
printk輸出
在Linux中,內核列印語句printk()會將內核信息輸出到內核信息緩沖區中,內核緩沖區是在
kernel/printk.c中通過如下語句靜態定義的:
static char __log_buf[__LOG_BUF_LEN] __aligned(LOG_ALIGN);
1
內核信息緩沖區是一個環形緩沖區(Ring Buffer),因此,如果塞入的消息過多,則就會將之前的消
息沖刷掉。
printk()定義了8個消息級別,分為級別0~7,級別越低(數值越大),消息越不重要,第0級是緊急
事件級,第7級是調試級
通過/proc/sys/kernel/printk文件可以調節printk()的輸出等級,該文件有4個數字值:
控制台(一般是串口)日誌級別:當前的列印級別,優先順序高於該值的消息將被列印至控制台。
默認的消息日誌級別:將用該優先順序來列印沒有優先順序前綴的消息,也就是在直接寫printk(「xxx」)而不帶列印級別的情況下,會使用該列印級別。
最低的控制台日誌級別:控制台日誌級別可被設置的最小值(一般都是1)。
默認的控制台日誌級別:控制台日誌級別的默認值。
用戶可以通過dmesg命令查看內核列印緩沖區,而如果使用sudo dmesg -c命令,則不僅會顯示__log_buf,還會清除該緩沖區的內容。
————————————————
版權聲明:本文為CSDN博主「linyplhm」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43777852/java/article/details/101852495
C. electron在win上可運行後,如何打包到linux上運行
1、如果只是需要運行起來,不需要打包,那麼可以在linux建文件夾,npm安裝對應包,然後將win下的代碼拷貝到對應位置即可運行。
2、如果需要打包,則比較復雜。大致為:
a) 建app文件夾,將代碼(含index.js文件)拷貝到其中。
b) npm安裝asar,用asar的pack命令,將app文件夾打包成一個文件app.asar
asar pack app app.asar
c) 在網頁鏈接 下載對應版本的linux預編譯二進制包,解壓,用上面生成的app.asar替換resources文件夾下同名文件。
d) 修改chrome-sanbox文件許可權及屬主:
sudochownroot:rootchrome-sandbox
sudochmod4755chrome-sandbox
e) ./electron即可運行
D. electron打包的deb格式文件,linux上圖表顯示不對,需要重啟電腦才能解決,這是怎麼回事,如何解決
1. 同時使用了npm與cnpm安裝依賴解決方法:刪除項目中的node_moles文件夾,重新使用 npm或cnpm安裝依賴。重新安裝完成後 重新打包即可。
2. 使用npm或cnpm安裝依賴時,打包依舊錯誤。解決方法:別用淘寶鏡像,直接使用國外源進行安裝,可以將電腦連接手機打開熱點,或翻牆速度快些。 重新安裝完成後
E. electron怎麼用命令行跑起來
前言:研究electron自動更新的時候,在electron的官方文檔auto-updater 中,提到了在幾個平台mac,linux,windows下electron 的自動更新方法,其中windsow平台上面,文章中建議先用grunt-electron-installer 模塊來創建windows安裝包,grunt這個...
F. 怎麼給electron應用程序更換圖標
前言:研究electron自動更新的時候,在electron的官方文檔auto-updater 中,提到了在幾個平台mac,linux,windows下electron 的自動更新方法,其中windsow平台上面,文章中建議先用grunt-electron-installer 模塊來創建windows安裝包,grunt這個工具是由Squirrel集成的。進而了解下Squirrel這個工具,
一個可以用來給electron應用的安裝更新卸載添加快捷方式的工具。本文主要提及如何在windows平台下,用Squirrel創建electron的.exe安裝包。
創建nuget包
我們的方法是使用nuget工具創建Nuget包,再使用Squirrel工具創建.exe。
下載squirrel.exe和nuget.exe,也可以選擇直接安裝Squirrel.Windows (需要有vitual
studio環境)。
2.新建文件夾如my-build,把下載好的squirrel.exe,nuget.exe和setup.exe
放進去,在文件夾放入我們未打包的electron應用,如下圖:
4.在my-build根目錄中,打開命令行執行nuget spec
如下圖:
生成 spec包初始文件
5.編輯器打開 Package.nuspec,按照自己項目的需要編輯這個文件,如下圖:
這里需要注意:根據Squirrel文檔說明,target folder 屬性需要設置為lib/net45,否則並沒有用;<iconUrl>標簽用來制定未來的exe的icon。
5.用下面的命令創建一個nuget包,
nuget pack Package.nuspec
如下圖:
之後在目錄中會出現這個包
命名規則就是<my_app_name>.<version>.nupkg
創建安裝程序
把應用程序打包成nuget包之後,就可以用squirrel創建一個安裝程序了。在根目錄打開命令行,執行以下命令:
squirrel --releasify <my_app_name>.<version>.nupkg
這個時候命令行中沒有任何提示。但是別慌,編譯一段時間後程序會創建一個release文件夾,裡面有三個文件,nuget包,RELEASES 文件和安裝文件Setup.exe。如下圖:
如果沒有出現這三個文件,可以查看目錄中的SquirrelSetup.log,根據裡面的報錯,來進行調試。
注意上面這條squirrel 命令,可以用來設置setup.exe在安裝過程中用傳統icon還是用自定義的圖片文件。使用Squirrel --help可以查看更多幫助
發布應用和安裝應用
把上一步生成的setup.exe發送給想要安裝這個應用的用戶,就可以了。
最終應用會被安裝在C:\Users\Administrator\AppData\Local\[appname] 文件夾中,注意Squirrel 的日誌文件也存在目錄中,調試安裝問題的時候非常有用。
雙擊我們的setup.exe進行安裝app的測試,如果中途有任何出錯,在
C:\Users\Administrator\AppData\Local\SquirrelTemp 裡面可以看到安裝日誌。如下圖:
安裝之後打開C:\Users\Administrator\AppData\Local 目錄,可以看到app安裝在這里,如下圖:
自動創建快捷方式
進入我們安裝之後的文件夾,命令行進入C:\Users\Administrator\AppData\Local\[your appname],執行 Update.exe --help ,可以看到
不知道從上圖你有沒有得到什麼提示,反正我發現了,在命令行手動創建快捷方式的命令是Update.exe --createshortcut electron\electron.exe -i [your ico toute]\app.ico
所以,如果我們想讓應用在安裝過程中靜默地創建好快捷方式,那就需要在app的安裝之後相反設法執行這句代碼。
因為我們的.exe會在安裝之後自動打開程序,所以我在程序的入口main.js,添加sqruieel事件的監聽就好了。如下圖:
我順便把程序卸載時,刪除快捷方式的監聽事件也寫了進去。還有程序的更新和刪除事件監聽,但是這兩個事件,我還沒有進行測試。
更新應用
其實我一直很想做增量更新,在這里我的更新方法有兩個,第一是在程序的入口添加js,發送請求到伺服器,拉取更改文件進行本地替換,但是如果是node_mole依賴包的更改,這個方法並不可行。第二個方法比較安全而且快捷通過發布一個版本號不同的exe,如下:1.在這個創建安裝程序的步驟2中,我們把程序代碼都復制到了這個文件夾裡面,如下圖:
如果後續我們的程序要進行更新,首先我們需要把更改的文件直接復制替換到這個文件夾。
2.打開Package.nuspec,編輯version標簽
3.參考本文種中創建安裝程序部分的步驟2-4,重新生成setup.exe,發布應用。
通過執行setip.exe安裝,程序會自動刪除之前的應用,但是我並不清楚,sqruieel 是進行了增量替換,還是將之前的整個應用進行刪除,再重新安裝。
創建自定義安裝包
在上一步,我們已經把自己的exe發布出來了,但是如果沒有自定義名字跟icon,好像還不夠酷,所以我們需要創建自定義的安裝文件。
下載安裝 Resource
Hacker
2.打開這個項目目錄,在electron.exe上面右鍵
出現菜單,點擊 Open using Rescource Hacker。
3.Resource Hacker應用運行之後中,在以下界面中選擇Icon,然後在工具欄裡面選擇Action,Replace
Icon,如下圖:
然後選擇自己想要替換的.ico文件就好
4.這其實並不夠,我們還需要更換exe裡面的版本信息,打開Version
Info,把FileDescription和ProctName改成我們自己的項目名稱,最好把SquirrelAwareVersion也更改一下,畢竟是版本號。
5.做完這些之後,我們需要按照之前的步驟,在命令行中輸入
nuget pack Package.nuspec
重新生成nuget包,然後再使用
squirrel --releasify <my_app_name>.<version>.nupkg 命令創建安裝文件。
6.打開之後生成的releases文件夾,參考本文種中創建安裝程序部分的步驟2-4,對setup.exe進行自定義。
最後,一個可以自動更新又安裝便捷,還有我們自己的酷酷的圖標跟名字的應用就生成拉!
G. electron-ssr在linux的kail版本下白屏怎麼回事呢
試試伺服器用工具v2ray,客戶端用ss和proxychains-ng呢,可以參考《Linux就該這么學》了解更多信息
H. 利用electron在win上打linux包,將該包拖到linux下該如何運行
./electron/electron your-app/
I. 如何搭建Electron開發環境
electron自動更新的時候,在electron的官方文檔auto-updater 中,提到了在幾個平台mac,linux,windows下electron 的自動更新方法,其中windsow平台上面,文章中建議先用grunt-electron-installer 模塊來創建windows安裝包,grunt這個工具是由Squirrel集成的。進而了解下Squirrel這個工具,
一個可以用來給electron應用的安裝更新卸載添加快捷方式的工具。本文主要提及如何在windows平台下,用Squirrel創建electron的.exe安裝包。
創建nuget包
我們的方法是使用nuget工具創建Nuget包,再使用Squirrel工具創建.exe。
下載squirrel.exe和nuget.exe,也可以選擇直接安裝Squirrel.Windows (需要有vitual
studio環境)。
2.新建文件夾如my-build,把下載好的squirrel.exe,nuget.exe和setup.exe
放進去,在文件夾放入我們未打包的electron應用,如下圖:
4.在my-build根目錄中,打開命令行執行nuget spec
如下圖:
生成 spec包初始文件
5.編輯器打開 Package.nuspec,按照自己項目的需要編輯這個文件,如下圖:
這里需要注意:根據Squirrel文檔說明,target folder 屬性需要設置為lib/net45,否則並沒有用;<iconUrl>標簽用來制定未來的exe的icon。
5.用下面的命令創建一個nuget包,
nuget pack Package.nuspec
如下圖:
之後在目錄中會出現這個包
命名規則就是<my_app_name>.<version>.nupkg
創建安裝程序
把應用程序打包成nuget包之後,就可以用squirrel創建一個安裝程序了。在根目錄打開命令行,執行以下命令:
squirrel --releasify <my_app_name>.<version>.nupkg
這個時候命令行中沒有任何提示。但是別慌,編譯一段時間後程序會創建一個release文件夾,裡面有三個文件,nuget包,RELEASES 文件和安裝文件Setup.exe。如下圖:
如果沒有出現這三個文件,可以查看目錄中的SquirrelSetup.log,根據裡面的報錯,來進行調試。
注意上面這條squirrel 命令,可以用來設置setup.exe在安裝過程中用傳統icon還是用自定義的圖片文件。使用Squirrel --help可以查看更多幫助
發布應用和安裝應用
把上一步生成的setup.exe發送給想要安裝這個應用的用戶,就可以了。
最終應用會被安裝在C:\Users\Administrator\AppData\Local\[appname] 文件夾中,注意Squirrel 的日誌文件也存在目錄中,調試安裝問題的時候非常有用。
雙擊我們的setup.exe進行安裝app的測試,如果中途有任何出錯,在
C:\Users\Administrator\AppData\Local\SquirrelTemp 裡面可以看到安裝日誌。如下圖:
安裝之後打開C:\Users\Administrator\AppData\Local 目錄,可以看到app安裝在這里,如下圖:
自動創建快捷方式
進入我們安裝之後的文件夾,命令行進入C:\Users\Administrator\AppData\Local\[your appname],執行 Update.exe --help ,可以看到
不知道從上圖你有沒有得到什麼提示,反正我發現了,在命令行手動創建快捷方式的命令是Update.exe --createshortcut electron\electron.exe -i [your ico toute]\app.ico
所以,如果我們想讓應用在安裝過程中靜默地創建好快捷方式,那就需要在app的安裝之後相反設法執行這句代碼。
因為我們的.exe會在安裝之後自動打開程序,所以我在程序的入口main.js,添加sqruieel事件的監聽就好了。
J. electron打了個linux包怎麼在linux上運行起來
這個你最好去看看Electron官網看看相關文檔,一般步驟是先進入進入項目目錄,然後安裝相關的項目依賴:npm install,最好可以使用命令npm start來啟動項目的。
樓主如果對Linux系統感興趣,想學習更多Linux系統知識,可以網路《Linux就該這么學》,不錯的一本Linux入門教程。