先介紹一下環境:
虛擬機:debian7.2.0
主機: Win7
方法一:
由於有時候無法聯網就需要離線安裝軟件包,可以把debian官網上列出的幾個DVD鏡像都下下來,其實主要是DVD1,這樣就不需要每次安裝軟件都得聯網。
下面是我從Debian官網上下下來的DVD鏡像:
debian-7.2.0-i386-DVD-1
debian-7.2.0-i386-DVD-2
debian-7.2.0-i386-DVD-3
在每張DVD中都有一個README.txt,其中有如下說明:
About This Disc
===============
This disc is labeled
Debian GNU/Linux 7.2.0 "Wheezy" - Official i386 DVD Binary-1
20131012-12:56
which means that this disc is number 1 of a set of 10 discs It
contains programs ("binaries") for `i386' computers.
The programs on the Binary discs are ordered by popularity. The
Binary-1 disc contains the most popular programs and the installation
tools; it is possible to install and run Debian with only the Binary-1
disc. The other discs, up to Binary-10, contain mostly
special-interest programs.
The Release Notes for "wheezy" are available on the Debian web site.
在DVD1中有關於Debian的安裝手冊,中文的手冊路徑是doc/manual/zh_CN/,其中也有關於DVD安裝的介紹
CD(和 DVD) 里面包含的軟件包按照流行程度排列次序。也就是說,第一張光盤里面是最常用的軟件,而最后一張光盤里面包含的是很少有人用到的軟件。
這也意味着購買或者下載刻錄所有 CD 是一種浪費,因為大部分光盤您根本不會用到。多數情況下,只需要使用前 3 到 8 張 CD,然后從網絡鏡像安裝其他要用的軟件包。DVD 的情況類似:只要一張,或者前兩張 DVD 就能滿足您大部分要求。
根據經驗,常見的桌面安裝(使用 GNOME 桌面環境)只需要前三張 CD。其他的桌面環境(KDE 或 Xfce),就需要額外的 CD。而第一張 DVD 就可以輕松地滿足所有的三種桌面環境。
下面開始安裝:
先給虛擬機添加三個虛擬光驅,將剛下載的三個DVD鏡像裝入
如下圖所示:(注意:由於已經安裝了Debian7.2,所以我把DVD1放在了第二個,即第一IDE控制器從通道,將DVD2放在了第一IDE控制器主通道上,目的是防止每次啟動時都自動進入Debian安裝界面,DVD1中也有很多軟件包)
由於添加了三個虛擬光驅,需要修改/etc/fstab,
修改為:
同時在/media目錄下新建一個目錄cdrom2,重啟后系統就自動把DVD2掛載到/media/cdrom0,將DVD1掛載到/media/cdrom1,將DVD3掛載到/media/cdrom2下面,如下圖:
掛載好之后,就可以修改/etc/apt/sources.list了,添加如下內容:
如果不知道路徑后面寫什么可以執行 apt-cdrom add,系統會自動搜索cdrom,並自動填寫/etc/apt/sources.list文件,可以看他是怎么寫的,使用apt-cdrom add這種方法,有事會出現無法找到軟件包的問題。
最后就可以執行 apt-get update了。
方法二:
與方法一的不同點是,不用給虛擬機添加虛擬光驅,只要Linux能夠識別放有光盤鏡像的存儲器就可以,比如我們把要用的幾塊光盤鏡像放到Samba共享目錄或者移動硬盤中,(對於使用移動硬盤的方案,Linux識別后系統會自動掛載如果沒有,需要手動掛載)。
比如將移動硬盤掛載到了/media/work/下,光盤鏡像的路徑是:
/media/work/software/虛擬機/debian/debian6/dvd
其中的鏡像如下:
pengdl@debian:/media/work/software/虛擬機/debian/debian6/dvd$ ls debian-6.0.8-i386-DVD-1.iso debian-6.0.8-i386-DVD-5.iso debian-update-6.0.8-i386-DVD-1.iso debian-6.0.8-i386-DVD-2.iso debian-6.0.8-i386-DVD-6.iso debian-update-6.0.8-i386-DVD-2.iso debian-6.0.8-i386-DVD-3.iso debian-6.0.8-i386-DVD-7.iso debian-6.0.8-i386-DVD-4.iso debian-6.0.8-i386-DVD-8.iso
在/media下創建幾個用於掛載的目錄,cdrom1 cdrom2 cdrom3 cdrom4 cdrom5 cdrom6 ....,為了說明問題,我們這里只創建cdrom1 cdrom2 cdrom3
pengdl@debian:/media$ ls cdrom cdrom0 cdrom1 cdrom2 cdrom3 entertainment sf_share work
分別將DVD1~DVD4掛載到cdrom0~cdrom3下:
pengdl@debian:/media$ sudo mount -o loop /media/work/software/虛擬機/debian/debian6/dvd/debian-6.0.8-i386-DVD-1.iso ./cdrom0
pengdl@debian:/media$ sudo mount -o loop /media/work/software/虛擬機/debian/debian6/dvd/debian-6.0.8-i386-DVD-2.iso ./cdrom1 pengdl@debian:/media$ sudo mount -o loop /media/work/software/虛擬機/debian/debian6/dvd/debian-6.0.8-i386-DVD-3.iso ./cdrom2 pengdl@debian:/media$ sudo mount -o loop /media/work/software/虛擬機/debian/debian6/dvd/debian-6.0.8-i386-DVD-4.iso ./cdrom3 pengdl@debian:/media$ mount /dev/sda1 on / type ext3 (rw,errors=remount-ro) tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755) proc on /proc type proc (rw,noexec,nosuid,nodev) sysfs on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620) /dev/sdc5 on /home type ext3 (rw) /dev/sdd1 on /home/pengdl/ext_disk type ext3 (rw) /dev/sdb5 on /usr type ext3 (rw) rpc_pipefs on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev) nfsd on /proc/fs/nfsd type nfsd (rw) share on /media/sf_share type vboxsf (gid=1001,rw) /dev/sde5 on /media/work type fuseblk (rw,allow_other,blksize=4096) /dev/sde1 on /media/entertainment type fuseblk (rw,allow_other,blksize=4096) /dev/loop0 on /media/cdrom0 type iso9660 (rw) /dev/loop1 on /media/cdrom1 type iso9660 (rw) /dev/loop2 on /media/cdrom2 type iso9660 (rw) /dev/loop3 on /media/cdrom3 type iso9660 (rw) pengdl@debian:/media$
修改sources.list
#deb http://192.168.8.64/debian6/debian squeeze main contrib non-free
#deb file:/home/pengdl/ext_disk/debian6_source/mirror/192.168.8.64/debian6/debian squeeze main contrib non-free #deb http://192.168.253.130/debian squeeze main contrib non-free
#deb http://127.0.0.1 squeeze main contrib non-
#deb http://ftp.debian.org/debian/ squeeze main non-free contrib
#deb http://ftp.debian.org/debian/ squeeze-proposed-updates main non-free contrib
#deb http://mirrors.163.com/debian/ squeeze main non-free contrib
#deb http://mirrors.163.com/debian/ squeeze-proposed-updates main non-free contrib
#deb-src http://mirrors.163.com/debian/ squeeze main non-free contrib
#deb-src http://mirrors.163.com/debian/ squeeze-proposed-updates main non-free contrib
deb file:///media/cdrom0 squeeze main contrib
deb file:///media/cdrom1 squeeze main contrib
deb file:///media/cdrom2 squeeze main contrib
deb file:///media/cdrom3 squeeze main contrib
注意 :
為什么要填寫 squeeze main contrib,而沒有non-free,因為
pengdl@debian:/media/cdrom1$ ls css debian dists firmware md5sum.txt pics pool README.html README.mirrors.html README.mirrors.txt README.txt pengdl@debian:/media/cdrom1$ cd dists/ pengdl@debian:/media/cdrom1/dists$ ls oldstable squeeze pengdl@debian:/media/cdrom1/dists$ ls -l total 2 lr-xr-xr-x 1 root root 7 Oct 19 23:23 oldstable -> squeeze dr-xr-xr-x 1 root root 2048 Oct 19 23:23 squeeze pengdl@debian:/media/cdrom1/dists$ cd squeeze/ pengdl@debian:/media/cdrom1/dists/squeeze$ ls contrib main Release
在squeeze下沒有non-free目錄。
最后執行sudo apt-get update 即可。
可以參考: