System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及軟件包轉換領域,具體提供一種將應用的deb包或rpm包轉換為kaiming包的方法。
技術介紹
1、隨著國產linux系統的不斷發展和使用,越來越多的開發者和企業選擇國產操作系統來作為運行平臺,隨著生態不斷的完善,openkylin系統發布了新的包管理器kaiming,給用戶提供更安全的應用執行環境。
2、包管理器kaiming由于出現的時間較晚,這導致很多應用開發者都已經適配了deb和rpm格式,而kaiming作為后來者,就需要應用重新進行適配,在適配期間需要重新梳理軟件依賴,并進行軟件編譯和驗證,根據驗證結果修改kaiming數據文件,直到應用正常使用。
3、目前linux系統中應用范圍比較廣的軟件包格式主要有deb和rpm兩大類的軟件包格式,這兩種包格式都有現有的工具來進行相互的格式轉換,而作為新的軟件包格式的kaiming,在將其它軟件包轉換為kaiming包這方面還是空白的。
4、對于kaiming包格式而言,從最基礎的配置文件編寫yaml文件到完成軟件包的編譯驗證,這其中的時間成本和試錯成本,會導致應用開發者無法第一時間看到具體的應用執行效果,降低軟件的適配效率,并且一些軟件由于只處于維護階段,不會進行新的軟件包格式替換。
5、相應地,本領域需要一種能將現有的deb或rmp包轉換為kaiming包格式的方法來解決上述問題,加速整個適配過程。
技術實現思路
1、為了克服上述缺陷,提出了技術方案,解決了軟件包格
2、本專利技術提供一種將應用的deb包或rpm包轉換為kaiming包的方法,包括以下步驟:
3、s1:獲取預設的metadata文件模板,所述metadata文件模板包括目標應用的kaiming軟件包名稱以及啟動目標應用的二進制文件名稱;
4、s2:根據所述kaiming軟件包名稱創建軟件名稱目錄,將所述metadata文件模版存放到所述軟件名稱目錄下;
5、s3:在所述軟件名稱目錄下創建files目錄,將目標應用的deb包或rpm包解壓到所述files目錄下;
6、s4:根據解壓后的文件內容,獲取依賴包名稱;
7、s5:根據依賴包名稱,將對應的依賴包解壓到files目錄下,并返回s4直到所有缺少的依賴包都解壓完;
8、s6:在files目錄下新建export目錄和var目錄,將目標應用的deb包或rpm包解壓后的desktop文件和圖標icon文件,存放到export目錄下,將目標應用的deb包或rpm包解壓后的靜態庫文件、pkgconfig文件和share/man文件刪除;
9、s7:根據啟動目標應用的二進制文件名稱,在files目錄下進行搜索,將啟動目標應用的二進制文件存放到bin目錄下;
10、s8:通過命令kaiming?build-export直接導出kaiming軟件包。
11、進一步,所述目標應用的kaiming軟件包名稱以及啟動目標應用的二進制文件名稱為開發者根據目標應用手動填寫的。
12、進一步,所述metadata文件模板中還包括默認填寫的dbus、dev、文件目錄、debug、locale和默認的運行時,所述dbus、dev和文件目錄是kaiming對目標應用的權限控制,所述debug是kaiming調試應用所需要的參數,所述默認的運行時包括kaiming軟件包初始的依賴包。
13、進一步,所述步驟s4包括:
14、在files目錄下獲取deb包解壓后的debian目錄,從debian目錄下control文件的depends字段中獲取deb包的依賴包名稱;或
15、在files目錄下通過執行預設命令直接獲取rpm包的依賴包名稱。
16、進一步,所述根據依賴包名稱,將對應的依賴包解壓到files目錄下,包括:
17、對于目標應用的直接依賴包名稱,根據默認依賴的運行時獲取對應的runtime目錄,在runtime目錄下獲取package.json文件,并在files目錄下創建depends.json文件,將依賴包名稱作為關鍵字,在package.json文件中進行查找,對于沒有找到的依賴包,通過apt/yum下載到本地并解壓到files目錄下,并將處理完的依賴包名稱存儲到depends.json文件中;
18、對于目標應用的間接依賴包名稱,直接將對應的依賴包解壓到files目錄下。
19、進一步,所述bin目錄為deb包或rpm包解壓到files目錄下的文件夾。
20、進一步,其特征在于,
21、所述直接依賴包為根據目標應用的deb包或rpm包解壓到files目錄下的文件獲取的依賴包名稱;
22、所述間接依賴包名稱為根據目標應用的直接依賴包或目標應用的間接依賴包解壓到files目錄下的文件獲取的依賴包名稱。
23、本專利技術具有以下有益效果:
24、在實施本專利技術的技術方案中,只需要根據metadata文件模板填寫應用的基本信息以及所需要的權限和dbus信息即可,剩下的工作都能通過程序自動執行,這對從頭開始進行kaiming軟件包的yaml文件編寫以及編譯過程,時間成本上減少了很多。將deb/rmp包直接轉換kaiming軟件包,用來填充軟件包轉換工具方面相關的空白,減少開發者在適配kaiming軟件包時所需要的學習成本,增加開發效率。解決用戶想以kaiming格式運行軟件以提高系統安全性,但是個別應用未進行kaiming格式適配的問題。通過程序的自動處理,減少開發者需要在配置文件中填寫的適配項,規避編譯問題和依賴問題。
本文檔來自技高網...【技術保護點】
1.一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述目標應用的kaiming軟件包名稱以及啟動目標應用的二進制文件名稱為開發者根據目標應用手動填寫的。
3.根據權利要求1所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述metadata文件模板中還包括默認填寫的dbus、dev、文件目錄、debug、locale和默認的運行時,所述dbus、dev和文件目錄是kaiming對目標應用的權限控制,所述debug是kaiming調試應用所需要的參數,所述默認的運行時包括kaiming軟件包初始的依賴包。
4.根據權利要求1所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述步驟S4包括:
5.根據權利要求3所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述根據依賴包名稱,將對應的依賴包解壓到files目錄下
6.根據權利要求1所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述bin目錄為deb包或rpm包解壓到files目錄下的文件夾。
7.根據權利要求5所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,
...【技術特征摘要】
1.一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述目標應用的kaiming軟件包名稱以及啟動目標應用的二進制文件名稱為開發者根據目標應用手動填寫的。
3.根據權利要求1所述的一種將應用的deb包或rpm包轉換為kaiming包的方法,其特征在于,所述metadata文件模板中還包括默認填寫的dbus、dev、文件目錄、debug、locale和默認的運行時,所述dbus、dev和文件目錄是kaiming對目標應用的權限控制,所述debug是kaiming調試應用所需要的參數...
【專利技術屬性】
技術研發人員:張淵,商曉陽,邢健,張鐸,史晶,程啟,
申請(專利權)人:麒麟軟件有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。