目的:備份 Embedebian 鏡像站
Embedebian 是提供 Debain 的嵌入式版本套件,特別是 ARM 的 Cross Compile 環境,在建置嵌入式系統開發時需要 Embedebian 所提供的套件才能編譯原始碼 (如 Linux 核心、bootloader) 或是進行其它工作。
一般來說我們都是直接自 Embedebian 網站上下載套件,其方式是先在 /etc/apt/sources.list 設定底下這兩行:
deb http://ftp.tw.debian.org/debian/ squeeze main
deb http://www.emdebian.org/debian/ squeeze main
加完之後執行
apt-get update
更新套件狀態,
然後先安裝 emdebian-archive-keyring 套件以免出現套件驗證錯誤,再安裝底下套件:
g++-4.4-arm-linux-gnueabi
cpp-4.4-arm-linux-gnueabi
gcc-4.4-arm-linux-gnueabi
接下來可以試著編譯 arm 底下的程式。請先建一個 hello.c 之檔案,內容如下:
#include <stdio.h>
void main(void)
{
printf("Hello World\n");
}
然後使用 gcc 來編譯:
gcc hello.c -o hello
接著可以用 file 來觀看其屬性:
file hello
我們可以看到此檔為 x86-64 之可執行檔,如底下所示:
hello: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0xe899e4c904b6efa70bd90c9a293d37109e111e59, not stripped
接下來可以使用 arm-linux-gnueabi-gcc-4.4 來編譯此檔使其成為 ARM 之可執行檔,這個過程也就是所謂的 Cross Compile
arm-linux-gnueabi-gcc-4.4 hello.c -o hello_arm
然後使用 file 來觀看其輸出:
file hello_arm
如底下所示,是 ARM 平台的可執行檔:
hello_arm: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x1c0380de88d986d10d6fb8ef5fa9492f4bd410dd, not stripped
----------------------------------------------------------------------
請執行 getemdebian.sh 來下載 www.emdebian.org/debian 目錄,其內容如下:
debmirror \
--arch=armel,i386,amd64 \
--dist=squeeze,wheezy \
--host=www.emdebian.org \
--root="debian" \
--diff=none -p \
--nosource \
--method=http \
--section main,contrib,non-free,main/debian-installer,main/installer-armel,main/i18n,main/source \
--ignore-release-gpg /home/ftp/emdebian/ ;
date
建立好 emdebian 鏡像之後,我們可以把 /etc/apt/sources.list 改成:
deb http://ftp.tw.debian.org/debian/ squeeze main
#deb http://www.emdebian.org/debian/ squeeze main
deb ftp://localhost/emdebian/ squeeze main
完成此流程後,我們就可以把 ARM cross compiler 放在自建鏡像站的 emdebian 目錄下,「理論上」無需再透過網路上網下載檔案,但是記得隨時更新套件狀態,以免有漏洞未更新造成系統安全問題。
2014年5月29日 星期四
2014年5月22日 星期四
自建 Debian 鏡像站
2019/10/14 修改
目的:自建 Debian 鏡像站 (MIRROR)
在安裝 Debian Linux 的過程中,常常需要使用網路進行遠端連線來下載套件 (packages), 如果網路連線有問題的話,我們經常無法進行套件下載或更新的操作。這對執行專案是項極大的困擾,為了不讓網路干擾我們進行下載,因此必須自行建立 Debian 鏡像站。
Debian 支援相當多硬體架構,因此官方鏡像站需要相當多的容量才可以儲存所有套件,我們的計畫僅需要底下架構:
X86_64 (amd64)
i386 (i386)
EABI ARM (armel)
Hard Float ABI ARM (armhf)
ARM64 (arm64)
其它架構的檔案無需下載,以節省硬碟空間。要自建 Debian 鏡像站的流程如下:
1. 建立 ftp 伺服器
2. 下載 Debian 套件
3. 啟動服務
4. 設定 /etc/apt/sources.list
------------------------------
如果我們希望所下載的 Debian 鏡像站可以提供給 pxeserver 使用的話,還必須
利用 NFS 的方式將 Debian 鏡像站的目錄分享給 pxeserver。
=========================================
1. 建立 ftp 伺服器
請以 root 權限執行:
# apt-get install proftpd-basic
安裝完畢後,請修改 /etc/proftpd/proftpd.conf 這個檔案,將底下部份移除行首之 #
(註解),移除完之結果如底下所述:
---------
<Anonymous ~ftp>
User ftp
Group nogroup
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 70
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
# Uncomment this if you're brave.
# <Directory incoming>
# # Umask 022 is a good standard umask to prevent new files and dirs
# # (second parm) from being group and world writable.
# Umask 022 022
# <Limit READ WRITE>
# DenyAll
# </Limit>
# <Limit STOR>
# AllowAll
# </Limit>
# </Directory>
</Anonymous>
--------
接著請修改 /etc/passwd 將 ftp 的家目錄由 /srv/ftp 改至 /home/ftp
修改完成後,請執行 proftpd-basic 服務,指令如下:
# /etc/init.d/proftpd restart
[ ok ] Stopping ftp server: proftpd.
[ ok ] Starting ftp server: proftpd.
啟動完畢後,我們可以使用 iceweasel 或是 gftp 來驗證自己的 ftp 站是否已完成架設。
=========================================
2. 下載 Debian 套件
由於 Debian 套件所佔之容量極為龐大,要下載 Debian 套件前請先確定自己的 /home/ftp 目錄是否有至少 150 GB 的容量,以免硬碟容量不足。
接下來請安裝 debmirror 套件,以便下載 Debian 鏡像站,接著請撰寫底下 script:
#HOST=ftp.tw.debian.org
HOST=debian.nctu.edu.tw
#HOST=opensource.nchc.org.tw
#HOST=ftp.twaren.net
debmirror \
--arch=i386,amd64,armel,armhf \
--dist=buster,buster-updates,buster-backports \
--di-arch=i386,amd64,armel \
--di-dist=stable \
--host=$HOST \
--root=":debian" \
--diff=none -p \
--nosource \
--method=rsync \
--section main,contrib,non-free \
--i18n \
--ignore-release-gpg /home/ftp/debian/ ;
此 script 請放在 /home/ftp 目錄下,執行:
# sh getdeb.sh
接著此 script 就會自動進行 Debian 套件下載的工作,我們也可以使用 crontab
讓此工作定期 (每日凌晨 2 點) 執行。
4. 設定 /etc/apt/sources.list
請修改 /etc/apt/sources.list
加上以下兩行:
deb file:/home/ftp/debian/ buster main contrib non-free
deb ftp://127.0.0.1/debian buster main contrib non-free
deb ftp://localhost/debian buster main contrib non-free
其中第一行是指在本機端下載套件時,可以不經由 ftp 傳輸協定,直接使用檔案複製的方式來進行套件下載。
第二行則是透過 ftp 傳輸協定,自 127.0.0.1 下載套件,請注意 lo 介面要打開,否則沒有 ftp://localhost 或 ftp://127.0.0.1。因此我們新的 /etc/apt/sources.list 可以只保留底下這幾行:
deb file:/home/ftp/debian/ buster main contrib non-free
deb ftp://127.0.0.1/debian buster main contrib non-free
#deb ftp://localhost/debian buster main contrib non-free
deb http://security.debian.org/ stable/updates main contrib
修改完畢後,可以在本機端使用
apt-get update
apt-get upgrade
apt-get install 套件
來進行安裝測試,以確認自己所架設之 Debian 鏡像站可以正常運轉。
目的:自建 Debian 鏡像站 (MIRROR)
在安裝 Debian Linux 的過程中,常常需要使用網路進行遠端連線來下載套件 (packages), 如果網路連線有問題的話,我們經常無法進行套件下載或更新的操作。這對執行專案是項極大的困擾,為了不讓網路干擾我們進行下載,因此必須自行建立 Debian 鏡像站。
Debian 支援相當多硬體架構,因此官方鏡像站需要相當多的容量才可以儲存所有套件,我們的計畫僅需要底下架構:
X86_64 (amd64)
i386 (i386)
EABI ARM (armel)
Hard Float ABI ARM (armhf)
ARM64 (arm64)
其它架構的檔案無需下載,以節省硬碟空間。要自建 Debian 鏡像站的流程如下:
1. 建立 ftp 伺服器
2. 下載 Debian 套件
3. 啟動服務
4. 設定 /etc/apt/sources.list
------------------------------
如果我們希望所下載的 Debian 鏡像站可以提供給 pxeserver 使用的話,還必須
利用 NFS 的方式將 Debian 鏡像站的目錄分享給 pxeserver。
=========================================
1. 建立 ftp 伺服器
請以 root 權限執行:
# apt-get install proftpd-basic
安裝完畢後,請修改 /etc/proftpd/proftpd.conf 這個檔案,將底下部份移除行首之 #
(註解),移除完之結果如底下所述:
---------
<Anonymous ~ftp>
User ftp
Group nogroup
# We want clients to be able to login with "anonymous" as well as "ftp"
UserAlias anonymous ftp
# Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 70
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
# Uncomment this if you're brave.
# <Directory incoming>
# # Umask 022 is a good standard umask to prevent new files and dirs
# # (second parm) from being group and world writable.
# Umask 022 022
# <Limit READ WRITE>
# DenyAll
# </Limit>
# <Limit STOR>
# AllowAll
# </Limit>
# </Directory>
</Anonymous>
--------
接著請修改 /etc/passwd 將 ftp 的家目錄由 /srv/ftp 改至 /home/ftp
修改完成後,請執行 proftpd-basic 服務,指令如下:
# /etc/init.d/proftpd restart
[ ok ] Stopping ftp server: proftpd.
[ ok ] Starting ftp server: proftpd.
啟動完畢後,我們可以使用 iceweasel 或是 gftp 來驗證自己的 ftp 站是否已完成架設。
=========================================
2. 下載 Debian 套件
由於 Debian 套件所佔之容量極為龐大,要下載 Debian 套件前請先確定自己的 /home/ftp 目錄是否有至少 150 GB 的容量,以免硬碟容量不足。
接下來請安裝 debmirror 套件,以便下載 Debian 鏡像站,接著請撰寫底下 script:
#HOST=ftp.tw.debian.org
HOST=debian.nctu.edu.tw
#HOST=opensource.nchc.org.tw
#HOST=ftp.twaren.net
debmirror \
--arch=i386,amd64,armel,armhf \
--dist=buster,buster-updates,buster-backports \
--di-arch=i386,amd64,armel \
--di-dist=stable \
--host=$HOST \
--root=":debian" \
--diff=none -p \
--nosource \
--method=rsync \
--section main,contrib,non-free \
--i18n \
--ignore-release-gpg /home/ftp/debian/ ;
此 script 請放在 /home/ftp 目錄下,執行:
# sh getdeb.sh
接著此 script 就會自動進行 Debian 套件下載的工作,我們也可以使用 crontab
讓此工作定期 (每日凌晨 2 點) 執行。
4. 設定 /etc/apt/sources.list
請修改 /etc/apt/sources.list
加上以下兩行:
deb file:/home/ftp/debian/ buster main contrib non-free
deb ftp://127.0.0.1/debian buster main contrib non-free
deb ftp://localhost/debian buster main contrib non-free
其中第一行是指在本機端下載套件時,可以不經由 ftp 傳輸協定,直接使用檔案複製的方式來進行套件下載。
第二行則是透過 ftp 傳輸協定,自 127.0.0.1 下載套件,請注意 lo 介面要打開,否則沒有 ftp://localhost 或 ftp://127.0.0.1。因此我們新的 /etc/apt/sources.list 可以只保留底下這幾行:
deb file:/home/ftp/debian/ buster main contrib non-free
deb ftp://127.0.0.1/debian buster main contrib non-free
#deb ftp://localhost/debian buster main contrib non-free
deb http://security.debian.org/ stable/updates main contrib
修改完畢後,可以在本機端使用
apt-get update
apt-get upgrade
apt-get install 套件
來進行安裝測試,以確認自己所架設之 Debian 鏡像站可以正常運轉。
2011年4月14日 星期四
管理鏡像站
將下載鏡像站改成校內:
鏡像站位置: ftp://120.117.72.71
設定下載鏡像站之設定檔
/etc/apt/sources.list
裡面內容如下:
#deb cdrom:[Debian GNU/Linux testing _Wheezy_ - Official Snapshot amd64 CD Binary-1 20130415-13:45]/ wheezy main
這一行是指定 Debian 從 cdrom 下載第一片的資料,我們不需要,因此可以在最前面打 # 註記起來。
#deb http://ftp.twaren.net/debian/ squeeze main
這一行是指定 Debian 從 ftp.twaren.net 下載編譯過之二進位檔,其網路協定為 http,由於它是校外網站,因此我們亦將其註解起來。
deb ftp://163.26.229.6/debian/ squeeze main
這一行是指定 ftp://163.26.229.6 為下載鏡像站,此站專門為南台所設定,因此我們將下載點改為此站會加快下載速度。
deb-src http://ftp.twaren.net/debian/ squeeze main
這一行是指定未編譯的原始檔下載網站,通常我們不會自行下載原始碼來編譯,所以這個設定沒太大用處。
deb http://security.debian.org/ squeeze/updates main
這一行是全球統一之安全性更新網站,十分重要
deb-src http://security.debian.org/ squeeze/updates main
同上,此行設定為安全性更新之原始碼檔案
修改 /etc/apt/sources.list 完畢後,我們可以執行
apt-get update (更新套件狀態)
在 Windows 底下經常會有:你有 ?? 個可升級(更新)之檔案,請盡速更新。
所謂的「更新套件狀態」是指將你已安裝之套件與網路上現有之最新套件作一比較,若有較新之套件,即可透過下面指令來升級。
apt-get upgrade (升級套件)
將本機套件升級至目前網路上可下載之最新套件。
如何修改 /etc/apt/sources.list 檔案
1. 正統方式:使用 vi,但是 vi 我們還沒教,請先參考鳥哥的書:
第十章、vim 程式編輯器
2. 取巧方式:抓我已修改好之檔案來作為新的 sources.list 檔
2.1 cd /etc/apt
切換至 /etc/apt 目錄
2.2 mv sources.list sources.list.orig
將原始 sources.list 改名為 sources.list.orig
2.3 wget ftp://163.26.229.6/linux/sources.list
下載我已修改完之 sources.list
2.4 cat sources.list
觀察其內容是否 OK
aptitude 套件操作程式
由於作業系統愈來愈複雜,因此現在的套件會有所謂「相依性」的問題,例如在 windows 底下安裝遊戲時,遊戲會自動偵測我們的 directx 版本,若是沒有安裝 directx 或是其版本太舊,系統會自動幫我們安裝。
在 Linux 底下,同樣有相依性的問題,而且對於不懂套件間關係的人相當的複雜,為了拯救眾生,因此有所謂套件操作/管理程式。以 Debian 來說,我們使用
練習:
安裝 vim 套件/移除 vim 套件
安裝
移除
X-Window (xorg)
要安裝 X 視窗系統,我們使用命令列方式來安裝,請執行:
apt-get install xorg
來安裝 xorg 這個套件,安裝完如果直接執行
startx
即會進入 X 視窗,但是沒有 X window manager,因此我們還要再安裝 icewm,請執行 exit 離開 X 視窗,再執行:
apt-get install icewm
來安裝 icewm 這個視窗管理員 (X window manager),安裝完後執行
startx
此時即可看到 icewm 的介面,未來我們將依此為基礎來一步步改造 icewm 成為我們理想的視窗介面。
安裝瀏覽器
請執行
apt-get install iceweasel
來安裝瀏覽器,安裝完之後按滑鼠右鍵即可在選單裡發現 iceweasel,我們可以呼叫iceweasel 來瀏覽網頁,不過tw.yahoo.com 網頁會出現亂碼,這是因為我們中文字尚未安裝,接下來我們的課程將介紹這個部份。
鏡像站位置: ftp://120.117.72.71
設定下載鏡像站之設定檔
/etc/apt/sources.list
裡面內容如下:
#deb cdrom:[Debian GNU/Linux testing _Wheezy_ - Official Snapshot amd64 CD Binary-1 20130415-13:45]/ wheezy main
這一行是指定 Debian 從 cdrom 下載第一片的資料,我們不需要,因此可以在最前面打 # 註記起來。
#deb http://ftp.twaren.net/debian/ squeeze main
這一行是指定 Debian 從 ftp.twaren.net 下載編譯過之二進位檔,其網路協定為 http,由於它是校外網站,因此我們亦將其註解起來。
deb ftp://163.26.229.6/debian/ squeeze main
這一行是指定 ftp://163.26.229.6 為下載鏡像站,此站專門為南台所設定,因此我們將下載點改為此站會加快下載速度。
deb-src http://ftp.twaren.net/debian/ squeeze main
這一行是指定未編譯的原始檔下載網站,通常我們不會自行下載原始碼來編譯,所以這個設定沒太大用處。
deb http://security.debian.org/ squeeze/updates main
這一行是全球統一之安全性更新網站,十分重要
deb-src http://security.debian.org/ squeeze/updates main
同上,此行設定為安全性更新之原始碼檔案
修改 /etc/apt/sources.list 完畢後,我們可以執行
apt-get update (更新套件狀態)
在 Windows 底下經常會有:你有 ?? 個可升級(更新)之檔案,請盡速更新。
所謂的「更新套件狀態」是指將你已安裝之套件與網路上現有之最新套件作一比較,若有較新之套件,即可透過下面指令來升級。
apt-get upgrade (升級套件)
將本機套件升級至目前網路上可下載之最新套件。
如何修改 /etc/apt/sources.list 檔案
1. 正統方式:使用 vi,但是 vi 我們還沒教,請先參考鳥哥的書:
第十章、vim 程式編輯器
2. 取巧方式:抓我已修改好之檔案來作為新的 sources.list 檔
2.1 cd /etc/apt
切換至 /etc/apt 目錄
2.2 mv sources.list sources.list.orig
將原始 sources.list 改名為 sources.list.orig
2.3 wget ftp://163.26.229.6/linux/sources.list
下載我已修改完之 sources.list
2.4 cat sources.list
觀察其內容是否 OK
aptitude 套件操作程式
由於作業系統愈來愈複雜,因此現在的套件會有所謂「相依性」的問題,例如在 windows 底下安裝遊戲時,遊戲會自動偵測我們的 directx 版本,若是沒有安裝 directx 或是其版本太舊,系統會自動幫我們安裝。
在 Linux 底下,同樣有相依性的問題,而且對於不懂套件間關係的人相當的複雜,為了拯救眾生,因此有所謂套件操作/管理程式。以 Debian 來說,我們使用
- apt-get 作為「指令式」的套件操作/管理
- aptitude 作為「文字介面式」的套件操作/管理,我們可以參考 ubuntu 的說明:http://wiki.ubuntu-tw.org/index.php?title=Aptitude
練習:
安裝 vim 套件/移除 vim 套件
安裝
- / -> 叫出 search for 小視窗,輸入 vim \Enter
- 出現套件裡有 vim 字串的程式,但不是我們要的,此時按 n 可以找下一個符合名稱的套件,一直按 n 直到找到我們要的套件為止。
- 按 + 準備安裝
- 按 g 安裝
移除
- / -> 叫出 search for 小視窗,輸入 vim \Enter
- 找到 vim
- 按 - 準備移除
- 按 g 移除
X-Window (xorg)
要安裝 X 視窗系統,我們使用命令列方式來安裝,請執行:
apt-get install xorg
來安裝 xorg 這個套件,安裝完如果直接執行
startx
即會進入 X 視窗,但是沒有 X window manager,因此我們還要再安裝 icewm,請執行 exit 離開 X 視窗,再執行:
apt-get install icewm
來安裝 icewm 這個視窗管理員 (X window manager),安裝完後執行
startx
此時即可看到 icewm 的介面,未來我們將依此為基礎來一步步改造 icewm 成為我們理想的視窗介面。
安裝瀏覽器
請執行
apt-get install iceweasel
來安裝瀏覽器,安裝完之後按滑鼠右鍵即可在選單裡發現 iceweasel,我們可以呼叫iceweasel 來瀏覽網頁,不過tw.yahoo.com 網頁會出現亂碼,這是因為我們中文字尚未安裝,接下來我們的課程將介紹這個部份。
訂閱:
文章 (Atom)