Talk:Update contribs
From SME Server
Jump to navigationJump to search
--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