我的最终目标是将我的Raspberry Pi变成FTP服务器。它连接到网络,但没有互联网连接。如果我可以运行“sudo apt-get install ....”命令,这似乎非常容易实现,但由于我没有互联网,这是不可能的。
我为python下载了“ftplib”,我认为一旦我启动它就可以连接到我的FTP服务器并与之交互,但是现在我被卡住了。
我对Linux或网络服务器的了解不多,所以感谢您提前耐心等待。
我认为一个可能的解决方案是在我的计算机上下载一个LAMP包,然后将其转移到Raspberry Pi,但我不确定我可能会遇到什么样的路径和文件夹问题。
答案 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软件包。