Changes

From SME Server
Jump to navigationJump to search
2,763 bytes added ,  13:23, 7 April 2017
Created page with "--~~~~ Content removed from page: ====script 1==== #!/bin/bash echo "List of available repos beside SME:"; #list the disabled repos for repo in $(yum repolist disabled ..."
--[[User:Mmccarn|Mmccarn]] ([[User talk:Mmccarn|talk]]) 13:23, 7 April 2017 (CEST)
Content removed from page:
====script 1====

#!/bin/bash

echo "List of available repos beside SME:";
#list the disabled repos
for repo in $(yum repolist disabled |awk '$1 !~ /id|Modules|repolist:/ {print $1}'); do

echo $repo;

done
echo "";

# repo selection
index=0;
repos="";
proceed="proceed";

until [ "$repos" == "$proceed" ]; do

repos[$index]=$repos;
((index=index+1));
read -p 'Enter 1x repo name for selection or "proceed" to start the updating: ' repos;

done

# remove the repo "proceed"
repos=("${repos[@]:1}");


for repo in "${repos[@]}"; do
echo "";
echo "======================================";
echo -e "\tUPDATE from repo: "$repo;
echo "======================================";

# generate the list of rpm installed from the repo
for rpm in $(/sbin/e-smith/audittools/newrpms |awk -v repo_awk=@$repo 'repo_awk==$3 {print $1}'); do

rpms=$rpm' '$rpms

done

# updating
yum --enablerepo=$repo update $rpms;

done

exit 0

Using this script is very easy:
* you get the list of all available repositories
* enter 1 by 1 the name of the repo you want to update from
* enter 'proceed' after the last repo
* for each repo, yum show the list of rpms that could be updated and ask (Y/N) before starting

eg.:
List of available repos beside SME:
centosplus
contrib
epel
extras
fasttrack
fws
remi
smecontribs
smedev
smetest
smeupdates-testing
sogo3

Enter 1x repo name for selection or "proceed" to start the updating: epel
Enter 1x repo name for selection or "proceed" to start the updating: fws
Enter 1x repo name for selection or "proceed" to start the updating: proceed

====script 2====
This script is much shorter, runs faster and doesn't require to enter the name of the several repos:

#!/bin/bash

for repo in $(/sbin/e-smith/audittools/newrpms |grep \@ |awk ' {print $3}' |sort -u |sed s/@//); do

# generate the list of rpm installed from the repo
for rpm in $(/sbin/e-smith/audittools/newrpms |awk -v repo_awk=@$repo 'repo_awk==$3 {print $1}'); do
rpms=$rpm' '$rpms
done

echo -e "\n\n===";
echo -e "Repo: "$repo;
echo -e "\nIncludePkgs: "$rpms;
echo "===";
# updating
yum --enablerepo=$repo --setopt="$repo.includepkgs='$rpms'" update

done

exit 0

The script
* runs 'newrpms' to get all repos that have been used to install non-standard packages
* creates a list of rpms for each such repo
* uses "--setopts" to specify "includepkgs" for each repo during update
* asks for Y/N and runs the update

Navigation menu