如何让 apt-mirror 将存储库文件保存在路由器提供的 FTP 服务器上?

如何让 apt-mirror 将存储库文件保存在路由器提供的 FTP 服务器上?

我有一个外置硬盘连接到我的 WRT1900AC 路由器,该路由器具有内置 ftp 支持。ftp 访问受用户和密码保护。

我想使用 apt-mirror 下载外部硬盘中的 Ubuntu 存储库。

我尝试修改:

/etc/apt/mirror.list

设置 base_path 如下:

ftp://marcelo:[email protected]/linux/apt-mirror

文件夹 /linux/apt-mirror 存在于 ftp 服务器中,并且我对它有写权限。

当我执行 apt-mirror 时我得到:

sudo apt-mirror 
apt-mirror: can't create ftp://marcelo:[email protected]/linux/apt-mirror/mirror directory at /usr/bin/apt-mirror line 342.

我这样做的原因是允许我的 LAN 中的任何人都可以访问存储库,而不使用我的笔记本电脑 SSD 中的有限空间。

答案1

如果有人感兴趣的话,我创建了以下脚本。

该脚本在本地文件系统中挂载 samba 共享,执行 apt-mirror,并在完成后卸载 samba 共享。

这几乎是我有史以来的第一份剧本,所以我确信还有很大的改进空间

#!/bin/bash
# This scripts expects cifs-utils installed and apt-mirror 
# installed and configured, and all samba shares properly configured


######### Variables Definition ##############

mountDir='/mnt/apt-mirrors'
sambaShare="//myserver/apt-mirrors"
sambaUser="myUser"
sambaPwd="mySambaPassword"

######### End Variables Definition ##########

clear

echo
echo "********** Starting Execution **********"
echo

if [ ! -d $mountDir ]; then
    echo "creating dir: $mountDir.."
    mkdir $mountDir
    echo "$mountDir created"
else
    echo "dir $mountDir exists"
fi

mounted () {
    eval "grep -qs $mountDir /proc/mounts"
}

echo

if mounted; then
    echo "something is mounted in $mountDir. Unmounting..."
    umount -f $mountDir
    echo
fi

echo "mounting share $sambaShare in dir $mountDir..."
mount -t cifs -o username=$sambaUser,password=$sambaPwd $sambaShare $mountDir 

if mounted; then
    echo "samba share $sambaShare successfuly mounted"
    echo
    echo "********* starting apt-mirror **********"
    echo
    (exec /usr/bin/apt-mirror)
    echo
    echo "********* apt-mirror finished **********"
    echo
    echo "unmounting $mountDir"
    umount -l $mountDir
fi

echo

if ! mounted; then
    echo "unmount successful"
else
    echo "something went wrong: $sambaShare is still mounted"
    echo "forcing unmount..."
    umount -f $mountDir
fi

echo

echo "cleaning $mountDir..."
rm -r $mountDir

echo
echo "********** Execution Finished **********"

exit

您可以替换变量的值以满足您的需要

相关内容