在没有互联网连接的情况下运行sudo apt-get install

时间:2013-06-04 13:25:31

标签: python linux ftp raspberry-pi apt

我的最终目标是将我的Raspberry Pi变成FTP服务器。它连接到网络,但没有互联网连接。如果我可以运行“sudo apt-get install ....”命令,这似乎非常容易实现,但由于我没有互联网,这是不可能的。

我为python下载了“ftplib”,我认为一旦我启动它就可以连接到我的FTP服务器并与之交互,但是现在我被卡住了。

我对Linux或网络服务器的了解不多,所以感谢您提前耐心等待。

我认为一个可能的解决方案是在我的计算机上下载一个LAMP包,然后将其转移到Raspberry Pi,但我不确定我可能会遇到什么样的路径和文件夹问题。

4 个答案:

答案 0 :(得分:5)

这样做永远不会干净,永远不会完美。但下面是我为了让它有时工作而做的事情。

您将需要一台类似于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>

然后从该目录中取出数据并将其放在某个设备上以传输到FTP服务器。从那里开始在目标机器上执行:

sudo dpkg -i *.deb

您可以做的另一件事是使用apt offline http://apt-offline.alioth.debian.org/

答案 1 :(得分:2)

您必须下载软件包它的依赖项。然后将它们放在SD卡上并执行:

cd folder_with_debs
sudo dpkg -i *.deb

顺便说一句,在大多数情况下,将eth电缆简单地插入覆盆子pi会更容易(正如你在SO上发布的那样,你应该可以访问互联网)

答案 2 :(得分:1)

对于@Inquisitor来说,这是一个非常长的评论。

顺便说一句,超级有用的答案;它让我走上正轨。对于任何有兴趣的人,我将在下面添加一些注释;请注意,所有这些漏洞最终都无法正常工作,我只是直接从以下网站下载文件:

ftp://ftp.us.debian.org/debian/pool/main/t/tk8.5/
ftp://ftp.us.debian.org/debian/pool/main/t/tcl8.5/

但希望这对某人有用。

我在pi上安装了tk8.5-dev和tcl8.5-dev。为此,我找到了:

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

因为我不是debian,但我做了

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6FB2A1C265FFB764

它告诉我no ultimately trusted keys found。我又跑了sudo apt-get update。如果你错过了一个密钥(就像我原来的那样),它会告诉你There is no public key available for the following key IDs: 6FB2A1C265FFB764。如果您仍有问题,this可能会有所帮助,或者可能是--allow-unauthenticated标记。

此时,我跑了

sudo apt-get -d build-dep tk8.5-dev_8.5.11-2_armhf.deb tcl8.5-dev_8.5.11-2_armhf.deb

得到了

Unable to find a source package for tk8.5-dev_8.5.11-2_armhf.deb

所以我{d added an architecture到dpkg:

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

还有更多的依赖关系,所以如果我发现其他任何有趣的东西,我今天就会完成这些工作并编辑这个答案。

当然,所有好东西都是chiastic,所以我不得不再次撤消所有内容,因为我不想在我的amd64铸币系统上安装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/

无论如何,我不知道这是否算作答案,但希望它对某人有所帮助。

答案 3 :(得分:0)

sudo dpkg -i ftplib

获取Debian软件包。