Am 31.08.2012 04:35, schrieb Edward M:
Hello,
I'm wondering, if is possible to setup a fedora 17 rsync,etc server, download new
fedora 17 bugs/security updates
to it, then update my fedora 17 computers from my fedora 17 rsync, etc server, so this
way i dont have to use the
internet to update
each one of them?
no need for a full rsync
install all the packages needed in your infrastructure on
teh local repo-server, just update it and refresh your repos
from yum-cache, i'm doing this since 2008 (Fedora 9) on all
machines which are in the meantime upgraded to F16 via YUM
the cleanup-script to get rid of old cahced packages is in
PHP because i am much faster since it is my "main-language"
______________________________
[root@buildserver:~]$ cat /buildserver/repo-cache.sh
#!/bin/bash
basearch=`uname -i`
releasever=`rpm -q --qf "%{version}\n" fedora-release`
for g in `ls -1b /var/cache/yum`
do
if [ -d /var/cache/yum/$g/packages ]
then
echo "/var/cache/yum/$g/packages/ > /repo/cache/fc$releasever/"
sudo cp --verbose /var/cache/yum/$g/packages/*.rpm /repo/cache/fc$releasever/ 2>
/dev/null
fi
done
createrepo -d /repo/cache/fc$releasever/
chmod -R 755 /repo/
______________________________
[root@buildserver:~]$ cat /buildserver/repo-clean.php
#!/usr/bin/php
<?php
ob_start();
passthru('rpm -q --qf "%{version}\n" fedora-release');
$release = trim(ob_get_clean());
ob_start();
passthru('uname -i');
$basearch = trim(ob_get_clean());
clean_repo('/repo/cache/fc' . $release . '/');
function clean_repo($path)
{
ob_start();
passthru('/usr/bin/repomanage --old ' . escapeshellarg($path));
$out = ob_get_clean();
$files = explode("\n", $out);
$deleted = 0;
foreach($files as $file)
{
$file = trim($file);
if(is_file($file))
{
if(@unlink($file))
{
echo "REMOVED: " . $file . "\n";
$deleted++;
}
else
{
echo 'FAILED: ' . $file . "\n";
}
}
}
if($deleted > 0)
{
passthru('/usr/bin/createrepo -d ' . escapeshellarg($path));
passthru('/bin/chmod -R 755 ' . escapeshellarg($path));
}
}
?>