日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

uos打包——公网deb包转uos的deb包

發(fā)布時(shí)間:2023/12/16 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 uos打包——公网deb包转uos的deb包 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這篇文章主要介紹公網(wǎng)上的deb包如何轉(zhuǎn)化為符合uos規(guī)范的deb包

一,獲取deb包

1. 本文檔使用eog包進(jìn)行演示從舊規(guī)則的包改成新規(guī)則的包的過程示例.2. 使用apt download eog或者其他方式來下載一個(gè)舊規(guī)則的eog包uos@uos-PC:~/Desktop$ mkdir eog uos@uos-PC:~/Desktop$ cd eog/uos@uos-PC:~/Desktop/eog$ apt download eoguos@uos-PC:~/Desktop/eog$ lseog_3.28.4-2+b1_amd64.deb3. 使用dpkg-deb -R pkg.deb test 將包名為pkg的deb包解壓到test目錄下uos@uos-PC:~/Desktop/eog$ dpkg-deb -R eog_3.28.4-2+b1_amd64.deb testuos@uos-PC:~/Desktop/eog$ lseog_3.28.4-2+b1_amd64.deb test

二,改包名

1. 按照新規(guī)則,我們要使用倒置域名規(guī)則來命令包名,并且要升級一下版本號修改test目錄下的DEBIAN目錄下的control文件,具體為修改Package字段和Version字段2. 修改前:Package: eogVersion: 3.28.4-2+b1修改后:Package: org.gnome.eogVersion: 3.28.4-3+b1版本號由軟件版本號和打包版本號組成,由`-`分割,左邊是軟件版本號,右邊是打包版本號,我們升級版本號只修改打包版本號,其他的不需要改變

三,創(chuàng)建UOS規(guī)范包結(jié)構(gòu)

1,UOS包結(jié)構(gòu)基本目錄 ,entries下的文件夾,只需把有的移動(dòng)過來就行

└── org.gnome.eog #此目錄以包名命名├── entries│ ├── applications #放desktop文件│ ├── autostart #放自啟動(dòng)入口文件│ ├── icons #應(yīng)用的圖標(biāo)文件,根據(jù)大小放進(jìn)不同的目錄下的apps/目錄下,svg格式的放在scalable/apps/目錄下│ │ └── hicolor│ │ ├── 128x128│ │ │ └── apps│ │ ├── 16x16│ │ │ └── apps│ │ ├── 24x24│ │ │ └── apps│ │ ├── 256x256│ │ │ └── apps│ │ ├── 32x32│ │ │ └── apps│ │ ├── 48x48│ │ │ └── apps│ │ ├── 512x512│ │ │ └── apps│ │ ├── 64x64│ │ │ └── apps│ │ └── scalable│ │ └── apps│ ├── plugins #插件的目錄│ └── services #dbus服務(wù)目錄│ └── glib-2.0 #schema文件│ └── GConf #gseetings文件│ └── locale #語言包文件├── files #其他文件└── info #應(yīng)用的一些信息

2,參考腳本,entries下的文件夾來自/usr/share/, 沒有的文件夾可以注釋掉。

#!/bin/bash# 包名 pkg="org.gnome.eog"mkdir -p $(pwd)/test/opt/apps/${pkg}/files mkdir -p $(pwd)/test/opt/apps/${pkg}/entriesmv $(pwd)/test/usr/bin $(pwd)/test/opt/apps/${pkg}/files/ mv $(pwd)/test/usr/lib $(pwd)/test/opt/apps/${pkg}/files/mv $(pwd)/test/usr/share/applications $(pwd)/test/opt/apps/${pkg}/entries/ mv $(pwd)/test/usr/share/icons $(pwd)/test/opt/apps/${pkg}/entries/ mv $(pwd)/test/usr/share/GConf $(pwd)/test/opt/apps/${pkg}/entries/ mv $(pwd)/test/usr/share/glib-2.0 $(pwd)/test/opt/apps/${pkg}/entries/ mv $(pwd)/test/usr/share/locale $(pwd)/test/opt/apps/${pkg}/entries/mv $(pwd)/test/usr/share $(pwd)/test/opt/apps/${pkg}/files/rm -r $(pwd)/test/usr

3,將腳本放到與test同級的目錄,執(zhí)行腳本

uos@uos-PC:~/Desktop/eog$ ls chdir.sh eog_3.28.4-2+b1_amd64.deb test uos@uos-PC:~/Desktop/eog$ chmod +x chdir.sh uos@uos-PC:~/Desktop/eog$ ./chdir.sh uos@uos-PC:~/Desktop/eog$ ls chdir.sh eog_3.28.4-2+b1_amd64.deb test uos@uos-PC:~/Desktop/eog$ cd test/ uos@uos-PC:~/Desktop/eog/test$ ls DEBIAN opt uos@uos-PC:~/Desktop/eog/test$

四,編輯info文件

1,info文件是應(yīng)用的描述文件,使用json格式,info文件內(nèi)容如下:

{"appid": "org.gnome.eog", # 包名"name": "eog", # 程序名"version": "3.28.4", # 程序版本號"arch": ["amd64","arm64","mips64el"], # 支持架構(gòu)"permissions": { # 暫時(shí)沒使用"autostart": false,"notification": false,"trayicon": false,"clipboard": false,"account": false,"bluetooth": false,"camera": false,"audio_record": false,"installed_apps": false}}

2,將編輯好的文件放到 與files文件的同級目錄

uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog$ ls entries files info uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog$

五,創(chuàng)建啟動(dòng)腳本用來導(dǎo)入依賴庫路徑

1,某些包帶有自己的運(yùn)行依賴庫,舊規(guī)則都是安裝在/usr/lib/目錄下,在系統(tǒng)啟動(dòng)時(shí)可以找到需要的運(yùn)行庫,新規(guī)則不允許安裝在/usr/lib/下,所以我們寫一個(gè)啟動(dòng)腳本,先使用LD_LIBRARY_PATH環(huán)境變量來導(dǎo)出運(yùn)行依賴庫的路徑,再去執(zhí)行可執(zhí)行文件

2,files文件夾下有l(wèi)ib文件夾的需要導(dǎo)庫腳本,沒有的可以直接執(zhí)行可執(zhí)行文件,導(dǎo)庫腳本如下:

  • 腳本中的路徑都需要是絕對路徑
  • c/c++導(dǎo)入庫路徑腳本參考
#!/bin/shexport LD_LIBRARY_PATH="/opt/apps/org.gnome.eog/files/lib/x86_64-linux-gnu/eog:LD_LIBRARY_PATH" /opt/apps/org.gnome.eog/files/bin/eog
  • python導(dǎo)入庫路徑腳本參考
#!/bin/bashexport PYTHONPATH="/opt/apps/io.readthedocs.quodlibet/files/lib/python3.7/site-packages":$PYTHONPATH python3 /opt/apps/io.readthedocs.quodlibet/files/bin/quodlibet
  • perl導(dǎo)入庫路徑腳本參考
#!/bin/bashexport PERL5LIB=/opt/apps/net.sourceforge.gscan2pdf/files/share/perl5:$PERL5LIB perl /opt/apps/net.sourceforge.gscan2pdf/files/bin/gscan2pdf

3, 將寫好的啟動(dòng)腳本放到bin目錄下,新創(chuàng)建的腳本沒有可執(zhí)行權(quán)限,需要先添加可執(zhí)行權(quán)限

uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog/files/bin$ chmod +x eog.sh uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog/files/bin$ ls eog eog.sh uos@uos-PC:~/Desktop/eog/test/opt/apps/org.gnome.eog/files/bin$

六,編輯desktop文件

1,uos規(guī)范的deb包會(huì)將程序安裝到/opt/apps/包名/的目錄下,desktop文件位于entries/applications目錄下

2,修改Exec字段,將Exec字段改為程序安裝后可執(zhí)行文件的目錄/opt/apps/org.gnome.eog/files/bin/eog.sh

3,修改Icon字段,將Icon字段改為程序安裝后圖標(biāo)的目錄/opt/apps/org.gnome.eog/entries/icons/hicolor/256x256/apps/eog.png

4,修改完這兩個(gè)字段就可以進(jìn)行下一步了,如果出現(xiàn)啟動(dòng)器不顯示,可以參考第四步,該例子中設(shè)計(jì)語言的字段太多,導(dǎo)致最后啟動(dòng)器沒有顯示,把一些和語言有關(guān)的字段刪除后,啟動(dòng)器可以正常顯示

[Desktop Entry] Name=Image Viewer Comment=Browse and rotate images Exec=/opt/apps/org.gnome.eog/files/bin/eog.sh %U Icon=/opt/apps/org.gnome.eog/entries/icons/hicolor/256x256/apps/eog.png StartupNotify=true Terminal=false Type=Application Categories=GNOME;GTK;Graphics;2DGraphics;RasterGraphics;Viewer; X-GNOME-Bugzilla-Bugzilla=GNOME X-GNOME-Bugzilla-Product=EOG X-GNOME-Bugzilla-Component=general X-GNOME-Bugzilla-Version=3.28.4 X-GNOME-DocPath=eog/eog.xml MimeType=image/bmp;image/gif;image/jpeg;image/jpg;image/pjpeg;image/png;image/tiff;image/x-bmp;image/x-gray;image/x-icb;image/x-ico;image/x-png;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-xbitmap;image/x-xpixmap;image/x-pcx;image/svg+xml;image/svg+xml-compressed;image/vnd.wap.wbmp;image/x-icns; Keywords=Picture;Slideshow;Graphics;

七,刪除鉤子腳本

1,如果解壓后的包在DEBIAN目錄下有preinst, postinst, prerm, postrm文件,確定沒有用的話,將其刪除,不刪除會(huì)導(dǎo)致deb包安裝失敗

2,之前在打包wireshark的過程中需要用到這些鉤子腳本,但是極少數(shù),大部分都是沒有用的,具體可以群里交流

八,壓包和安裝

1,使用dpkg-deb -b test/ 輸出目錄 ,將按照新規(guī)則放置好的目錄壓入deb包內(nèi)

uos@uos-PC:~/Desktop/eog$ ls chdir.sh eog_3.28.4-2+b1_amd64.deb test uos@uos-PC:~/Desktop/eog$ dpkg-deb -b test/ . dpkg-deb: 正在 './org.gnome.eog_3.28.4-2+b1_amd64.deb' 中構(gòu)建軟件包 'org.gnome.eog'。 uos@uos-PC:~/Desktop/eog$ ls chdir.sh eog_3.28.4-2+b1_amd64.deb org.gnome.eog_3.28.4-2+b1_amd64.deb test uos@uos-PC:~/Desktop/eog$

2,使用dpkg -i 安裝或者雙擊deb包安裝,檢查啟動(dòng)器是否有改程序且能正常使用和卸載,如果正常,打包完成。

3,啟動(dòng)器中程序名和desktop文件的Name字段對應(yīng)

3,打包過程中遇到的問題,隨時(shí)可以在QQ群交流。QQ群號:942418736

九,Q/A

總結(jié)

以上是生活随笔為你收集整理的uos打包——公网deb包转uos的deb包的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。