首页 > 网络技术 > Linux > 搭建一个openwrt源
2014
12-19

搭建一个openwrt源

openwrt的官方源实在太慢了,下载一个几十k的文件的等待能让人郁闷死.幸亏有一个香港vps,可以在上面把官方源文件拖下来,并建立一个自己的源.
第一步:下载官方源文件

 

#!/usr/bin/env python  
#coding=utf-8
#  
# Openwrt Package Grabber  
#  
# Copyright (C) 2014 http://shuyz.com   Modify By NINE
# 
#     

import urllib2 
import re
import os

# the url of package list page, end with "/"
baseurl = 'http://downloads.openwrt.org/barrier_breaker/14.07/ar71xx/nand/packages/'
dirs = ['base/','luci/','management/', 'oldpackages/','packages/','routing/','telephony/']
# which directory to save all the packages, end with "/"
savedir = './download/'
if not os.path.exists(savedir):
    os.makedirs(savedir)

for dir in dirs:
	srcUrl = baseurl + dir
	itemdir = savedir + dir

	print 'fetching package list from ' + srcUrl
	content = urllib2.urlopen(srcUrl, timeout=15).read()

	print 'packages list ok, analysing...'
	pattern = r'<a href="(.*?)">'
	items = re.findall(pattern, content)
	if not os.path.exists(itemdir):
		os.makedirs(itemdir)
	cnt = 0
	for item in items:
		if item == '../':
			continue
		else:
			cnt += 1
			print 'downloading item %d: '%(cnt) + item
			if os.path.isfile(itemdir + item):
				print 'file exists, ignored.'
			else:
				rfile = urllib2.urlopen(srcUrl + item) 
				with open(itemdir + item, "wb") as code:
					print 'downloding:' + item
					code.write(rfile.read())

print 'done!'

P.S.没有第二步了,文件下载后,源自检会报md5hash不匹配的错误,可能下载过程出现文件不完整.可以通过反代并修改openwrt hosts的方法实现加速:http://ninecmd.com/archives/828

最后编辑:
作者:NINE
这个作者貌似有点懒,什么都没有留下。

留下一个回复

你的email不会被公开。