1. 程式人生 > >給本地openwrt/LEDE軟體源新增軟體包,更新Package.sig簽名檔案,解決Signature check failed問題

給本地openwrt/LEDE軟體源新增軟體包,更新Package.sig簽名檔案,解決Signature check failed問題

先說說為什麼要搭建本地軟體源,openwrt/LEDE穩定版軟體,驅動版本都比較舊,trunk版呢又更新的很快,系統裝上幾天又想要從官方伺服器上使用opkg裝軟體可能就裝不上了,所以最好的解決辦法就是在本地搭建一個軟體源,把正在使用的系統版本的所有軟體儲存下來。而且官方的源在國外,訪問速度極慢,使用本地的源可以跑滿內網頻寬。

官方的軟體源只有系統的基本軟體和不多的功能外掛,克隆到本地後,就有了對本地源完全的許可權,我們就可以往源新增新編譯的軟體了。

為了保證軟體的相容性,一般來說新增到源上的軟體都應該使用從相應的源提供的SDK打包,直接從系統原始碼和版本不一致的SDK打包的軟體都有可能裝不上。

給源新增軟體首先肯定是把編譯出來的ipk檔案上傳到伺服器,接著就是在索引中新增新增的軟體包的資訊,在軟體包生成的目錄中我們可以發現除了我們選中的軟體包之外還有三個檔案生成——Packages,Packages.gz,Packages.manifest,這幾個檔案就是提供軟體包的索引(在SDK下使用make package/xxxx/compile生成軟體包後不會生成索引,要直接使用make),索引類似下面的一段內容

Package: gdut-drcom
Version: 1.6.8-3
Depends: libc
License: GPL-3.0+
Section: net
Architecture
: mips_24kc Installed-Size: 18513 Filename: gdut-drcom_1.6.8-3_mips_24kc.ipk Size: 19427 SHA256sum: 4e35ea4c3efd54b0e7c02e90706dd61eb5645f1b8e7466b3c87f5247a0cdcc6e Description: gdut-drcom for openwrt is a third party drcom client openwrt.

得到索引資訊之後就是把這些資訊插到軟體源伺服器的索引中,最好按照軟體包的字母順序插入,儘量不要打亂原有檔案結構。

更新了3個索引檔案之後,先去路由裡面修改源伺服器,配置檔案是
/etc/opkg/distfeeds.conf ,按照原來的格式把伺服器地址改為本地伺服器地址

#src/gz reboot_core http://downloads.lede-project.org/snapshots/targets/ar71xx/generic/packages                                                   
#src/gz reboot_base http://downloads.lede-project.org/snapshots/packages/mips_24kc/base                                                           
#src/gz reboot_luci http://downloads.lede-project.org/snapshots/packages/mips_24kc/luci                                                           
#src/gz reboot_packages http://downloads.lede-project.org/snapshots/packages/mips_24kc/packages                                                   
#src/gz reboot_routing http://downloads.lede-project.org/snapshots/packages/mips_24kc/routing                                                     
#src/gz reboot_telephony http://downloads.lede-project.org/snapshots/packages/mips_24kc/telephony                                                 

src/gz reboot_packages http://10.99.100.160:8082/lede/package/mips_24kc/packages                                                                  
src/gz reboot_base http://10.99.100.160:8082/lede/package/mips_24kc/base                                                                          
src/gz reboot_luci http://10.99.100.160:8082/lede/package/mips_24kc/luci                                                                          
src/gz reboot_routing http://10.99.100.160:8082/lede/package/mips_24kc/routing                                                                    
src/gz reboot_telephony http://10.99.100.160:8082/lede/package/mips_24kc/telephony  

儲存之後執行opkg update更新本地索引

root@LEDE:~# opkg update
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_packages
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/packages/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/base/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_base
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/base/Packages.sig
Signature check failed.
Remove wrong Signature file.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_luci
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/luci/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_routing
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/routing/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_telephony
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/telephony/Packages.sig
Signature check passed.

可以看到路由已經從本地的源伺服器更新索引了,但是……我們修改過的那個base中的package簽名不通過,上網搜尋了一晚上,終於在openwrt官方論壇上找到了簽名的生成方法,我在這裡再翻譯一遍吧
首先,找到生成簽名的工具——usign,ubuntu中apt安裝不成功,納悶了許久最終在sdk裡面找到了這個工具,這個工具藏在,sdk目錄/staging_dir/host/bin中,下面就可以跟著官方論壇上的方法生成簽名了
第一步,生成一對公鑰和私鑰,公鑰用於路由對簽名檔案進行校驗,私鑰用於我們生成簽名檔案

[email protected]-linux:~/lede-sdk-ar71xx-generic_gcc-5.4.0_musl.Linux-x86_64/staging_dir/host/bin$ ./usign -G -s mime.key -p mime.pub

第二步,利用生成的私鑰對伺服器上的Packages檔案生成簽名檔案,Packages檔案不在當前目錄的話要加上路徑

[email protected]-linux:~/lede-sdk-ar71xx-generic_gcc-5.4.0_musl.Linux-x86_64/staging_dir/host/bin$ ./usign -S -m Packages -s mime.key -x Packages.sig

第三步,把簽名檔案上傳到伺服器上,把公鑰上傳到路由,在路由上新增我們生成的公鑰

root@LEDE:~# scp [email protected]:~/lede-sdk-ar71xx-generic_gcc-5.4.0_musl.Linux-x86_64/staging_dir/host/bin/mime.pub /tmp
hokamyuen@192.168.1.150's password: 
mime.pub                                                                                                        100%  104     0.1KB/s   00:00    
root@LEDE:~# cd /tmp
root@LEDE:/tmp# opkg-key add mime.pub
root@LEDE:/tmp# 

最後,在路由上重新更新軟體索引

root@LEDE:/tmp# opkg update
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/packages/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_packages
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/packages/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/base/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_base
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/base/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/luci/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_luci
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/luci/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/routing/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_routing
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/routing/Packages.sig
Signature check passed.
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/telephony/Packages.gz
Updated list of available packages in /var/opkg-lists/reboot_telephony
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/telephony/Packages.sig
Signature check passed.

可以看到,簽名通過了,哈哈哈哈!
接下來就可以用opkg直接從伺服器上新編譯安裝軟體了

root@LEDE:/tmp# opkg install gdut-drcom
Installing gdut-drcom (1.6.8-3) to root...
Downloading http://10.99.100.160:8082/lede/package/mips_24kc/base/gdut-drcom_1.6.8-3_mips_24kc.ipk
Configuring gdut-drcom.
post install: patching ppp.sh
patched!
post install: patching ppp.sh
patched!
'radio0' is disabled
root@LEDE:/tmp# 

最後再寫一個新增索引的注意事項
有些包的索引會比伺服器上的多了一些奇怪的東西,例如

Package: libstdcpp
Version: 5.4.0-1
License: GPL-3.0-with-GCC-exception
Section: libs
Status: unknown hold not-installed
Essential: yes
Architecture: mips_24kc
Installed-Size: 375927
Filename: libstdcpp_5.4.0-1_mips_24kc.ipk
Size: 374075
SHA256sum: 689a6a67156f76afcafb4f3d545b02ac7972aa87ddb7b165406d98abe63fc070
Description:  GNU Standard C++ Library v3

只要把多出來的Status和Essential項刪掉就好。

相關推薦

本地openwrt/LEDE軟體新增軟體更新Package.sig簽名檔案解決Signature check failed問題

先說說為什麼要搭建本地軟體源,openwrt/LEDE穩定版軟體,驅動版本都比較舊,trunk版呢又更新的很快,系統裝上幾天又想要從官方伺服器上使用opkg裝軟體可能就裝不上了,所以最好的解決辦法就是在本地搭建一個軟體源,把正在使用的系統版本的所有軟體儲存下來。

django 一鍵生成excel表格並下載到本地並根據時間刪除檔案上傳excel檔案

from django.http.response import HttpResponse, JsonResponse import datetime import os import xlwt import xlrd from django.http import Stre

07_資料庫建立新增c3p0操作所需的jar編寫c3p0-config.xml檔案編寫User.java,編寫jdbcUtils.java實現操作資料庫的模板工具類UserDao編寫Dao

 1建立day14資料庫,建立user.sql表: A 建立資料庫 day14 B 建立資料表 users createtable users ( id

Fedora22新增國內軟體本地軟體

Linux系統和Windows系統一個很大的區別就是軟體安裝方式,windows系統下安軟體,我們去相應的網站下載軟體安裝包離線安裝就可以了。雖然Linux下少數軟體也可以像Windows一樣離線安裝,但是因為Linux系統的軟體之間的依賴性非常強,一個軟體可能依賴好幾個軟體,這樣的話離線安裝就非常不方便

在Ubuntu中新增和刪除PPA的軟體(轉)

文章轉自:https://blog.csdn.net/luckydarcy/article/details/55803500 PPA,英文全稱為 Personal Package Archives,即個人軟體包檔案。是 Ubuntu Launchpad 網站提供的一項源服務,允許個人使用者上傳軟

ubunut 本地軟體製作

sudo apt-get install dpkg-dev mkdir ~/software cp -R -v /var/cache/apt/archives/* ~/software sudp dpkg-sanpackages ~/software /dev/nu

自建centos的yum並實現新增軟體

1 獲得所有的常見rpm包  通過wget 163、sohu等國內比較知名的源來將所有的rpm軟體包下載到伺服器的http根目錄中。 2 自己搭建yum源 yum -y install createrepo 規劃/建立yum源目錄 mkdir -p /data/yum/ce

轉載:Ubuntu Tweak--我用來新增第三方軟體順便講講apt-key

Usage: apt-key [command] [arguments]Manage apt's list of trusted keysapt-key add <file>          - add the key contained in <file> ('-' for std

VirtualBox中配置linux OS的本地磁碟映象作為其軟體

紅帽系列(以及CentOS)都有yum軟體源的概念,即在終端通過命令可以直接從軟體源下載軟體並安裝。除了網路上的軟體源外,我們也可以使用下載好的紅帽的linux或CentOS映象來作為軟體源。它包含了大部分常用軟體,而在我們安裝CentOS系統的時候,很多時候是選擇性安裝的

kali linux 新增國內軟體

步驟: 1  開啟/etc/apt/sources.list檔案,命令:nano /etc/apt/sources.list 2  在官方軟體源地址前加上 #號,以註釋掉kali linux官方軟體源 3  目前所知國內的kali linux映象站有: 1)  中國科學技術大

ubuntu本地軟體製作

1.安裝dpkg-dev疊變工具 sudo  apt-get install dpkg-dev 2.當前使用者目錄下建立software目錄 mkdir  ~/software 3.將archives目錄下所有檔案複製到當前使用者的software目錄下 cp

CentOS 本地iso掛載並配置iso映象作為yum安裝軟體

1、前提條件       作業系統:CentOS7       ISO檔案:CentOS7的ISO映象一個 2、使用圖形化介面掛載ISO映象 3、使用命令列掛載ISO映象 ls -l /dev | grep cdrom #找到光碟的完整路徑 4、使用命

在Ubuntu中新增和刪除PPA的軟體

  PPA,英文全稱為 Personal Package Archives,即個人軟體包檔案。是 Ubuntu Launchpad 網站提供的一項源服務,允許個人使用者上傳軟體原始碼,通過 Launchpad 進行編譯併發布為二進位制軟體包,作為 apt / 新

CentOS 6.5搭建本地OpenStack軟體

搭建centos6.5下openstack icehouse版本的時候,發現rdo方式已經不能用centos6.5,最新的版本需要升級到centos7才可以,於是自己搭建本地的openstack yum源。方法轉載 1 2 3 4 5 mkdir

CDH5實踐(一)本地Yum軟體安裝Cloudera Manager 5

Cloudera Manager 5(以下簡稱CM)預設採用線上安裝的方式,給不能聯網際網路或者網路不暢的使用者帶來了不便,由於網路問題,屢裝屢敗的挫折感,讓初次學習CDH使用者真心體驗到萬事開頭難。本文講解了在CentOS 6環境下搭建本地Yum軟體源,區域網內的使用者在完全不連網際網路的情況下,完成CM

配置VirtualBox中CentOS 6.5的本地磁碟映象作為其軟體

          有時候Linux系統不能聯網,此時就不能使用聯網的yum源了(網路上的軟體源(如網易、搜狐、中科大映象))。這時可以使用下載好的CentOS磁碟映象(.iso檔案)來作為軟體源。它

在ubuntu下安裝Sublime text 3及新增其相關的軟體

在Ubuntu 16.04上安裝Sublime Text 3 安裝sublime很簡單,一行命令即可,但不能保證是最新版本。因此,重要的是Sublime源的獲取。 首先下載Sublime Text

centos6搭建本地openstack軟體

1、把相關軟體包全部下載到本地機器  wget -np -nH –cut-dirs=1 -r -c -L –exclude-directories=repodata –accept=rpm,gz,xml http://repos.fedorapeople.org/rep

年少痴狂懷戀曾經的創業歲月語音識別的應用遠遠未到高潮本人的軟體原始碼開源需要的留下Email,我大家發

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Cubietruck開發板折騰005:linaro有效的ARM軟體

     之前在網上找了很多關於ubuntu的軟體源希望可以替換掉linaro的軟體源,但是這兩天要用到的時候發現之前收藏的很多軟體源都失效了,要不就是不支援ARM平臺的,導致軟體更新下載都出現嚴重的缺失,這兩天花了點時間繼續研究了下各種軟體源,大部分都沒有提供ARM平