[原创]在linux无法联网, windows可以联网的情况下使用apt

包含网卡/无线网的网络问题和ADSL/校园网/宽带拨号支持及代理/共享等网络使用问题
holy
帖子: 19
注册时间: 2007-11-25 15:28

#16

帖子 holy » 2007-12-05 18:24

通常同一台机器是不会出现win可以联网但ubuntu不可以联网的情况的
----------------------------------------------------
这事它就发生了.

想问一下怎么设置本地源啊?
我在xp里面把.deb软件都下的差不多了,想设置一下,用新立得安装.
palxex
帖子: 136
注册时间: 2006-10-30 11:23

#17

帖子 palxex » 2007-12-07 16:33

see here
头像
itux
帖子: 223
注册时间: 2008-01-10 14:03

#18

帖子 itux » 2008-01-10 14:35

学习一下,不过作用似乎不大了
lyw
帖子: 5
注册时间: 2008-02-01 12:40

#19

帖子 lyw » 2008-02-01 12:57

我也在校园网,安装的时候先断开网络,完成安装后重新插上网线就可以使用了。
forstef
帖子: 8
注册时间: 2008-02-09 5:40

不用这么麻烦吧

#20

帖子 forstef » 2008-02-17 14:13

什么都不用改!
直接用新力得安装所要的软件包,如果没有连网,过一段时间就会弹出错误对话框,提示哪些软件包不能下载,并且是绝对地址,把这些复制一下再到瘟到死里下载就可以了,把下载下来的文件复制回linux临时文件夹就可以安装了.
lovefan
帖子: 120
注册时间: 2008-03-05 12:13
来自: china

#21

帖子 lovefan » 2008-03-09 12:20

支持一下!
头像
woainba15
帖子: 833
注册时间: 2006-11-11 17:14
来自: 浙江宁波
联系:

#22

帖子 woainba15 » 2008-03-13 12:03

这个方法就是麻烦了一些,不过比较适合校园的用户!
时间过得快啊!
头像
outersky
帖子: 188
注册时间: 2007-04-25 10:07
来自: 上海

结合apache和 apt-axel能够在联机的情况下实现全程的多线程下载,提升速度

#23

帖子 outersky » 2008-03-16 0:01

我现在在作8.04的小白,所以几乎天天有更新,有时甚至一天就更新好几次,与楼主的情况类似,但是又不尽相同。
我能上网,但是网速比较慢,因为同时用的人太多了,所以如果不抢的话,带宽一般在3k左右,相比现在每天动辄100M的更新,不来点狠的还真不行。
通过 apt-axel 脚本,现在可以实现下载deb包的时候实现多线程,一般在30k左右,比之前的好多了,已经知足了。

但是 apt-get update 更新软件列表的时候,速度还是比较慢,下载一个Packages.bz2就要半个多小时,简直要吐血,所以我就想了个办法,用axel先下载回来,但是有了Packages.bz2以后,不知道怎么让apt-get去分析这个里面的内容,于是乎。。。
我想到了在我本机假设一个最小的镜像,只镜像apt-get update需要下载的文件,于是写了一个 sync_repo.sh 的脚本,以保持正确的目录结构,然后,修改 /etc/hosts 把127.0.0.1设定为 archive.ubuntu.com ,也就是我现在源的地址,大家一定明白了,下一步就是启动apache了,因为我之前直接把包下载到 /var/www下面了,所以apache启动完毕以后,一切OK.

这个时候再运行 apt-get update ,速度飞快,哈哈, 如果最后看到真的有软件更新了,那么我就把 /etc/hosts 里面那一行去掉, 开始从真正的站点去下载deb,当然,是使用apt-axel多线程下载。

用apache的好处就是,如果真的需要联网的时候,切换起来比较方便,不需要配置deb / deb-src。

我现在使用的脚本如下,仅供参考:

代码: 全选


#/bin/sh

DIST_URL=http://archive.ubuntu.com/
DIST_ARCH=i386
DIST_REPO="main multiverse universe restricted"
DIST_DIR=ubuntu/dists/hardy/
LOCAL_DIR=/var/www/

cd ${LOCAL_DIR}

get_sub_dir(){
    echo handling $1 ...
    TMP_DIR=$1/binary-${DIST_ARCH}/
    rm -rf ${TMP_DIR}
    mkdir -p ${TMP_DIR}
    cd ${TMP_DIR}
    axel -n 10 ${DIST_URL}${DIST_DIR}${TMP_DIR}Packages.bz2
}

refresh_package_list(){
  for repo in ${DIST_REPO} ; do
    cd ${LOCAL_DIR}${DIST_DIR}
    get_sub_dir ${repo}
  done
}

if [ -d ${DIST_DIR} ]; then
    echo dir: ${LOCAL_DIR}${DIST_DIR} already exists.
fi

if [ ! -d ${DIST_DIR} ] ; then
    echo "dir: ${LOCAL_DIR}${DIST_DIR} not exists, will create it."
    mkdir -p ${DIST_DIR} 
fi

cd ${DIST_DIR}

wget_file(){
  if [ -f $2 ]; then
    rm $2
  fi
  wget $1$2
}

if [ -f Release ]; then
    echo "Release file exists, and Date is :"    
    grep Date: Release
    echo 
    echo -n "Are you going to continue ?[y/n/Y/N/yes/no]"
    read answer
    case ${answer} in
    n|N|no)
        exit 0
        ;;
    esac

fi

wget_file ${DIST_URL}${DIST_DIR} Release.gpg
wget_file ${DIST_URL}${DIST_DIR} Release

grep Date: Release

echo -n "Will you refresh package list ?[y/n/Y/N/yes/no]"
read answer
case ${answer} in
Y|y|yes)
    refresh_package_list
    ;;
esac


liuyun2009
帖子: 99
注册时间: 2007-10-23 12:42
来自: 成都

Re: 结合apache和 apt-axel能够在联机的情况下实现全程的多线程下载,提升速度

#24

帖子 liuyun2009 » 2008-03-22 21:29

outersky 写了:我现在在作8.04的小白,所以几乎天天有更新,有时甚至一天就更新好几次,与楼主的情况类似,但是又不尽相同。
我能上网,但是网速比较慢,因为同时用的人太多了,所以如果不抢的话,带宽一般在3k左右,相比现在每天动辄100M的更新,不来点狠的还真不行。
通过 apt-axel 脚本,现在可以实现下载deb包的时候实现多线程,一般在30k左右,比之前的好多了,已经知足了。
[/code]
懂起来是有些难度。。。。。
头像
drvicar
帖子: 1285
注册时间: 2007-12-17 18:07
来自: 西安

#25

帖子 drvicar » 2008-04-02 21:16

palxex 写了:虽然不是校园网,不过现在的情况颇为异曲同工:)
现在的法子是在windows下用andlinux(基于colinux,用ubuntu的),直接用它的apt,只下载不安装。回到ubuntu下直接mount colinux的硬盘文件,下面就不用说了。
这个可以哦,我试下,感觉楼主说的没有看懂,我在研究下,然后动手,或者先动手后研究,不说了,把时间浪费在选择题上可不好,哈哈!
soyalge
帖子: 8
注册时间: 2008-04-07 14:17

#26

帖子 soyalge » 2008-04-07 18:25

可解决了大难题了,不过看着有些复杂,脑袋有点转不过来了。

ps:damn ruijie!
wucongkun
帖子: 251
注册时间: 2006-11-10 20:27

#27

帖子 wucongkun » 2008-04-08 13:20

我用了另外一个方法。
就是http://forum.ubuntu.org.cn/post-17665.html 这里提供的axel脚本
但是我作了下修改
因为原来的脚本 遇到部分软件没有通过验证的情况时,选择y继续,会中断。
我自己修改了一部分(下面的force yes):
pkg_install() {
local packages

packages=$(sudo apt-get -s install "$1" | grep ^Inst\ | sed s/^Inst\ // | sed s/\ .*$//)
pkg_download "$packages"
sudo apt-get --force-yes install "$1"
}

但是 axel这个东西很奇怪
源列表如果不止一个镜像
那么axel脚本会先初始化,但是产生的url都是错误的,因为开头部分是多个源的地址,例如:
Initializing download:
ftp://ftp.neu.edu.cn/mirror/archive.ubu ... 5_i386.deb

我发现了这个脚本会输出要更新的软件的列表,所以就动了点坏心思,处理这些url,然后导入到迅雷。
可惜 开单线程都不行。
后来发现firefox的downthemall扩展可以用,我就运行这个脚本>ll.txt生成了列表,然后进行处理,再把文本复制到邮件正文发给自己,然后开downthemall。
说实话,速度真是快多了。。

还有 关于这个脚本 我不知道是不是有问题。
如果镜像不止一个,那么下载的时候似乎看不到多线程的感觉。
如果仅仅用一个镜像,反而可以看到这样的输出:
Initializing download: http://archive.ubuntu.com/ubuntu//pool/ ... 01_all.deb
File size: 5184 bytes
Opening output file /tmp/language-pack-gnome-ace_8.04+20080401_all.deb
Starting download


[ 25%] [0 .............2 3 ] [ 0.1KB/s] [00:34]

Connection 1 finished

[ 25%] [0 .............2 3 ] [ 0.1KB/s] [00:34]
[ 50%] [0 .........................3 ] [ 0.1KB/s] [00:20]

Connection 2 finished

[ 50%] [0 .........................3 ] [ 0.1KB/s] [00:20]
[ 75%] [0 .....................................] [ 0.2KB/s] [00:06]

Connection 3 finished

[ 75%] [0 .....................................] [ 0.2KB/s] [00:06]

Connection 0 finished

Downloaded 5.1 kilobytes in 25 seconds. (0.20 KB/s)

反正就是不如意。
downthemall看来好像还是最好的选择。
希望高手能帮下忙……
头像
lhw828
帖子: 2797
注册时间: 2007-03-15 16:58
来自: 湖北武汉
联系:

#28

帖子 lhw828 » 2008-04-11 19:24

很好很强大
头像
oken
帖子: 31
注册时间: 2008-03-29 11:44
来自: CHINA

#29

帖子 oken » 2008-04-20 11:04

我是校园网,虚拟机下安装的,设置了很久还是不可以上网,知道如何设置的朋友麻烦详细介绍一下:
viewtopic.php?t=115920&highlight=
头像
drvicar
帖子: 1285
注册时间: 2007-12-17 18:07
来自: 西安

#30

帖子 drvicar » 2008-07-23 18:29

:twisted: 能不能持续更新一下,哈哈!
回复