我有一个外置硬盘连接到我的 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
您可以替换变量的值以满足您的需要