2012-03-23 80 views
2

我想在沒有互聯網連接的ArchLinux機器上安裝軟件包。 我正在關注鏈接https://wiki.archlinux.org/index.php/Offline_Installation_of_Packages(「Normal Method:Pacman」部分)。在離線ArchLinux系統上安裝軟件包

命令「pacman -Sp --noconfirm xorg-server」列出了從中下載的依賴關係,但不包括完整的 url。任何想法如何獲得從URL下載從屬軟件包的列表。我使用的是pacman版本4.0.2-libalpm v7.0.2。

+0

我剛剛嘗試過與'pacman'相同的版本,它工作正常(我有互聯網連接)。也許嘗試指定'--print-format%l'?但它應該是默認的,所以我不相信它會改變任何事情。也許你正在使用的包數據庫有問題? – 2012-03-23 19:48:01

+0

使用命令「pacman -Sp --noconfirm --print-format%1 xorg-server」在多行(21次)中打印'%1'。任何指針來檢查數據庫的有效性。 – 2012-03-23 20:21:18

+0

這是數字「l」(小寫字母L),而不是「1」。 – 2012-03-23 20:23:34

回答

3

我通過禁用所有存儲庫鏡像來複制您描述的行爲。

$ pacman -Sp inkscape 
gc-7.1-4-i686.pkg.tar.xz 
gsl-1.15-2-i686.pkg.tar.xz 
libsigc++-2.2.10-2-i686.pkg.tar.xz 
glibmm-2.30.1-1-i686.pkg.tar.xz 
cairomm-1.10.0-2-i686.pkg.tar.xz 
pangomm-2.28.4-1-i686.pkg.tar.xz 
atkmm-2.22.6-1-i686.pkg.tar.xz 
gtkmm-2.24.2-2-i686.pkg.tar.xz 
imagemagick-6.7.6.2-1-i686.pkg.tar.xz 
inkscape-0.48.3.1-2-i686.pkg.tar.xz 

當我解決它回來時,輸出的樣子:

$ pacman -Sp inkscape 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/gc-7.1-4-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/gsl-1.15-2-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/libsigc++-2.2.10-2-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/glibmm-2.30.1-1-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/cairomm-1.10.0-2-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/pangomm-2.28.4-1-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/atkmm-2.22.6-1-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/gtkmm-2.24.2-2-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/imagemagick-6.7.6.2-1-i686.pkg.tar.xz 
ftp://mirrors.kernel.org/archlinux/extra/os/i686/inkscape-0.48.3.1-2-i686.pkg.tar.xz 

我們可能需要修正什麼。

1)/etc/pacman.conf

下面是我的( 「信息庫」 部分)的摘錄:

# Repository entries are of the format: 
#  [repo-name] 
#  Server = ServerName 
#  Include = IncludePath 
# 
# The header [repo-name] is crucial - it must be present and 
# uncommented to enable the repo. 
# 

[core] 
#SigLevel = PackageRequired 
Include = /etc/pacman.d/mirrorlist 

[extra] 
#SigLevel = PackageOptional 
Include = /etc/pacman.d/mirrorlist 

[community] 
#SigLevel = PackageOptional 
Include = /etc/pacman.d/mirrorlist 

2)鏡像列表(/etc/pacman.d/mirrorlist

鏡像列表您在pacman.conf包括需要刪除一些記錄。

$ head /etc/pacman.d/mirrorlist 
## 
## Arch Linux repository mirrorlist 
## Generated on 2011-08-16 
## 

## Any 
Server = ftp://mirrors.kernel.org/archlinux/$repo/os/$arch 
Server = http://mirrors.kernel.org/archlinux/$repo/os/$arch 

## Australia 

等等。請注意,由pacman -Sp生成的URL實際上使用鏡像列表中的第一個條目。

3)關於ArchWiki article中的說明的另一個說明:您實際上不需要同時下載.db.tar.gz文件。 .db文件實際上是tarball自身,幷包含相同的文件和文件夾。所以你可以下載core.db,community.dbextra.db並把它們放在/var/lib/pacman/sync

+0

只是好奇。你怎麼知道這個問題? – 2012-04-03 06:29:38

+1

我只是想知道URL信息的存儲位置,然後我看到所有鏈接都是一個鏡像,鏡像是我鏡像列表中的第一個。此外,我被告知'.db'文件包含與其餘東西一樣的東西,我檢查了那裏沒有URL。 – 2012-04-03 07:50:40