我下载了Python的“ftplib”,我认为一旦我成功建立FTP服务器就可以使用它连接并与之交互,但现在我陷入困境。
我不太了解Linux或Web服务器,所以提前感谢您的耐心。
我认为可能的解决方案是在有互联网的计算机上下载LAMP软件包,然后将其传输到树莓派中,但我不确定我可能遇到的路径和文件夹问题。
这样做从来不是简单的,也不可能完美无缺。但以下是我尝试过的一些方法,有时它们能够起作用。
你需要一台与FTP服务器类似的机器,并且从FTP服务器下载所有软件包和依赖项。通常情况下,你需要首先在互联网机器上运行:
sudo apt-get clean
/var/cache/apt/archives/
目录,以确保其中只包含您需要的软件包及其依赖项。然后执行以下命令:sudo apt-get -d build-dep <package_name>
-d
参数只会下载软件包,而build-dep
会获取所有依赖项并将它们放置在/var/cache/apt/archives/
中。因此,您至少需要进行类似的构建。有时,如果您的计算机已经安装了目标服务器所需的软件包,则甚至需要执行sudo apt-get remove <package name>
。sudo dpkg -i *.deb
你可以使用apt离线http://apt-offline.alioth.debian.org/来进行操作。
apt-get download ...
命令将 deb 文件下载到当前目录,这样就不需要再使用 apt-get clean
命令了。 - drevicko您需要下载软件包和其依赖项。然后将它们放在SD卡上并执行以下操作:
cd folder_with_debs
sudo dpkg -i *.deb
这是对@Inquisitor的一个非常长的评论。
顺便说一句,这个答案非常有帮助,它让我走上了正确的轨道。下面我会写一些笔记,供有兴趣的人参考;请注意,所有这些绕路最终都没有起作用,我直接从以下网址下载了文件:
ftp://ftp.us.debian.org/debian/pool/main/t/tk8.5/
ftp://ftp.us.debian.org/debian/pool/main/t/tcl8.5/
https://packages.debian.org/wheezy/armhf/tk8.5-dev/download
https://packages.debian.org/wheezy/armhf/tcl8.5-dev/download
deb http://ftp.de.debian.org/debian wheezy main
)添加到了/etc/apt/sources.list
,然后运行了sudo apt-get update
。在更新时,它向我大喊:GPG error: http://ftp.de.debian.org wheezy Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 6FB2A1C265FFB764
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6FB2A1C265FFB764
sudo apt-get -d build-dep tk8.5-dev_8.5.11-2_armhf.deb tcl8.5-dev_8.5.11-2_armhf.deb
and got
Unable to find a source package for tk8.5-dev_8.5.11-2_armhf.deb
sudo dpkg --add-architecture armhf
sudo apt-get update
而apt-get仍然无法找到这些软件包。所以我放弃了并直接下载了文件。在我的情况下,由于我不能使用build-dep,我为armhf下载并安装了这里列出的所有内容:
https://packages.debian.org/stable/devel/libxss-dev
https://packages.debian.org/stable/devel/libxft-dev
https://packages.debian.org/stable/devel/tk8.5-dev
https://packages.debian.org/stable/devel/tk8.5
https://packages.debian.org/stable/devel/tcl8.5-dev
https://packages.debian.org/stable/devel/tcl8.5
有更多的依赖关系,所以我今天会处理这些依赖关系,并在发现其他有趣的事情时编辑此答案。
当然,所有好的事情都是倒装的,所以我不得不再次撤消所有操作,因为我不想在我的amd64 mint系统上安装debian armhf软件包:
sudo dpkg --remove-architecture armhf
sudo apt-key del 8B48AD6246925553
sudo apt-key del 6FB2A1C265FFB764
sudo apt-get update
我从 /etc/apt/sources.list 中删除了 deb http://ftp.de.debian.org/debian wheezy main
更多源: http://savvyadmin.com/download-pgp-keys-with-apt-key/
无论如何,我不知道这是否算作答案,但希望对某些人有所帮助。
apt-offline
在离线系统上安装软件包的真正好方法是使用apt-offline
。它只有非常少的依赖项,可以通过dpkg -i
在离线系统上安装。
在pkgs.org下载deb文件。
# Online is the computer connected to internet
# Offline is the computer disconnected from internet
# ---
# ## Install apt-offline ##
# Online
apt update
apt install apt-offline
# Offline
# Download last package from pkgs.org
dpkg -i apt-offline_1.8.*_all.deb
# ## Update System ##
# Offline
apt-offline set --update updates.sig
# Online
apt-offline get updates.sig --bundle updates.zip
# Offline
apt-offline install updates.zip
# ## Upgrade System ##
# <!> Update must be done before.
# Offline
apt-offline set --upgrade upgrade.sig
# Online
apt-offline get upgrade.sig --bundle upgrades.zip
# Offline
apt-offline install upgrades.zip
apt upgrade --no-download --fix-missing
# ## Install packages##
# <!> Update must be done before.
# pkg1, pkg2 & pkg3 being the packages you want to install
# Offline
apt-offline set install.sig --install pkg1 pkg2 pkg3
# Online
apt-offline get install.sig --bundle install.zip
# Offline
apt-offline install install.zip
apt install pkg1 pkg2 pkg3 --no-download --fix-missing
重要提示:不要同时进行更新和升级/安装。这样做会从计算机上已安装的软件包列表执行升级,而不是在更新后执行。
重要提示2:apt-offline install
和 upgrade
不足以安装软件包。这个命令所做的唯一事情就是填充 apt 的缓存 (/var/cache/apt/archives
),这使您可以继续使用 apt install --no-download --fix-missing
命令。
sudo dpkg -i ftplib
针对 Debian 包。