Personal tools
You are here: Home Uputstva Slackware Slackware mirror i auto-update
stop softwarepatents
ne m$-vom standardu
Scriptum Libre
Kernel.org
Poslednja 2.6 verzija
2.6.27.6

Poslednja 2.4 verzija
2.4.36.9
Sponzori
open document format
Linux Sigurnost
Debian security

Gentoo security

Mandriva security

Red Hat security

Slackware security

Suse security

Ubuntu security

Log in


Forgot your password?
New user?
prijatelji LUGoNS-a
 
Document Actions

Slackware mirror i auto-update

by milobit last modified 2006-08-24 12:09

Kratko upustvo kako da se uradi automatizacija update procedure

Za update Slackware GNU/Linux-a postoji više različitih alata, ja lično koristim swaret. Update skript je baziran na swaret alatu.

Sve što je potrebno su dva skripta (mirror.sh i update.sh) kao i da je instaliran swaret.

Mirror skript pravi mirror slackware-current verzije u lokalu i on je veličine oko 3.2GB. Mirror skript se startuje jednom dnevno od strane cron-a posle čega mi cron šalje mail sa izveštajem da je cron startovao skriptu i kompletan izveštaj šta je skripta uradila.

Mirror skript izgleda ovako:

#!/bin/bash
# Slackware mirror script
# by milobit

VERSION=current
DATUM=`date +%F`
FILENAME="$DATUM.mirror-log.txt"
DIR="/var/log/mirror"

echo "Start rsync Slackware current mirror"
echo " "

echo "slackware.no mirror"
echo " "

rsync -rlHtSv --delete rsync://rsync.slackware.no/linux/slackware/slackware-$VERSION
/home/ftp/ 2>&1>
/$DIR/$FILENAME

cat /$DIR/$FILENAME

echo "slackware.at mirror"
echo " "


rsync -rlHtSv --delete rsync://rsync.slackware.at/slackware/slackware-$VERSION /home/ftp/ 2>&1 > /$DIR/$FILENAME

cat /$DIR/$FILENAME

echo "rsync done"


Sa ovim je omogućeno da se automacki proverava svaki dan da li postoji razlika izmedju mirorr-a u lokalu i na serveru kao i automacko sinhronizovanje. Pre nego što se mirror skript pusti u promet potrebno je napraviti mirror dierktorijum u /var/log. Značajan deo posla je urađen i novi update se kompletno nalazi u lokalu. Sada je još potrebno da se update i instalira na mašinu, za to je zadužen update skript.

Update skript izgleda ovako:

#!/bin/bash
# Swaret auto-update script
# by milobit


DATUM=`date +%F`
MASHINE=`uname -n`
FILENAME="$DATUM-$MASHINE.update-log.txt"
DIR="/var/log/slackware-update"

swaret --update 2>&1 > /$DIR/$FILENAME
swaret --upgrade -a 2>&1 >> /$DIR/$FILENAME
ldconfig 2>&1 >> /$DIR/$FILENAME
#swaret --dep -a 2>&1 >> /$DIR/$FILENAME
updatedb 2>&1 >> /$DIR/$FILENAME

cat /$DIR/$FILENAME

echo "Update Done!!!"


Update skript se takođe pokreće od strane cron-a ali par sati kasnije kako bi dao mirror skriptu vremena da napravi update mirror-a. Pre nego što se skript pokrene potrebno je napraviti slackware-update direktorijum u /var/log.

Za sve one koji nisu u mogućnosti ili ne žele da imaju mirror na kućnoj mašini mogu da koriste samo update skript stim da u konfiguracionom fajlu koji se nalazi u /etc/swaret.conf sami odrede koji će server da koriste. U slučaju da koristite svoj lokalni mirror u swaret.conf treba da upišete: ROOT=file:/home/ftp/slackware-$VERSION

Primeri za swaret.conf:

ROOT=file:/home/ftp/slackware-$VERSION              # update se vrši preko lokalnog direktorijuma
ROOT=ftp://192.168.10.50/slackware-$VERSION    # update se vrši preko lokalnog ftp servera
ROOT=ftp://ftp.slackware.at/slackware-$VERSION  # update se vrši preko udaljenog ftp server

###########################################################
#
# swaret.conf, Version: 1.6.3
#
### /etc/swaret.conf - SWARET EXAMPLE CONFIGURATION FILE ###
#
# Define a valid Slackware Linux Version.
# (Used for Dependency Support and other Features)
#
# NOTE: If you want to use Slackware Linux Current,
#       set VERSION to 'current' (VERSION=current).
#
VERSION=current
#
# Define the language for status and error messages
LANGUAGE=ENGLISH
#
# ----------------------------------------------------------
# Define Slackware (8.1 or Higher or Current) Linux Mirrors.
# (Used for Official Slackware Linux Packages)
# (Slackware Linux Mirrors available at http://www.slackware.com)
#
# Syntax: ROOT=PROTOCOL:URL
#
# NOTE: swaret will use the order of the specified ROOT URL's.
#
#ROOT=file:/mnt/cdrom
#ROOT=file:/mnt/dvdrom
#ROOT=file:/mnt/usbmemstick
ROOT=ftp://192.168.10.50/slackware-$VERSION
#ROOT=ftp://134.155.48.123/pub/linux/distributions/slackware/slackware-$VERSION
#ROOT=ftp://ftp.nluug.nl/pub/os/Linux/distr/slackware/slackware-$VERSION
#ROOT=http://sunsite.cnlab-switch.ch/ftp/mirror/slackware/slackware-$VERSION
#ROOT=ftp://ftp.slackware.no/pub/linux/slackware/slackware-$VERSION
#ROOT=http://www.slackware.no/slackware/slackware-$VERSION
#ROOT=ftp://ftp.slackware.at/slackware-$VERSION
#ROOT=http://www.slackware.at/data/slackware-$VERSION
#ROOT=ftp://ftp.planetmirror.com/pub/slackware/slackware-$VERSION
#ROOT=http://ftp.planetmirror.com/pub/slackware/slackware-$VERSION
#ROOT=rsync://rsync.slackware.no/slackware/slackware-$VERSION
#ROOT=rsync://rsync.slackware.at/slackware/slackware-$VERSION
#ROOT=file:/pub/slackware
#ROOT=file:/mnt/nfsshare/slackware
#ROOT=file:/mnt/sambashare/slackware
#
# -----------------------------------------------------------
# Define Repository URL's with Slackware Linux Packages.
# (Used for Repository Slackware Linux Packages)
# (Repository URL's available at http://swaret.sourceforge.net and
#   at http://www.linuxpackages.net/mirrors.php)
#
# NOTE 1: To use a Local Repository or Remote Repository,
#         be sure it contains the following Files:
#         - CHECKSUMS.md5 (For MD5 Sum, REQUIRED)
#         - FILELIST.TXT (For Package Name + Size, REQUIRED)
#         - PACKAGES.TXT (For Package Description, NOT REQUIRED)
#         - MANIFEST.bz2 (For Dependency Support, NOT REQUIRED)
# NOTE 2: To create your own Repository, use 'swaret-tools'.
#         You can get 'swaret-tools' at http://swaret.sourceforge.net!
#
# Syntax: REPOS_ROOT=REPOSITORYNAME%PROTOCOL:URL
#
# NOTE 1: The REPOSITORY NAME can only be ONE Keyword!
# NOTE 2: swaret will use the order of the specified REPOS_ROOT URL's.
#
#REPOS_ROOT=LinuxPackagesDOTNET%http://www2.linuxpackages.net/packages/Slackware-10.0
#
#REPOS_ROOT=My_Slackware_Packages_On_CD-ROM%file:/mnt/cdrom
#REPOS_ROOT=My_Slackware_Packages_On_DVD-ROM%file:/mnt/dvdrom
#REPOS_ROOT=My_Slackware_Packages_On_USB_Memory_Stick%file:/mnt/usbmemstick
#REPOS_ROOT=SomeRemoteRepository%ftp://ftp.someremoterepository.net/slackware/slackware-10.0
#REPOS_ROOT=SomeRemoteRepository%http://www.someremoterepository.net/slackware/slackware-10.0
#REPOS_ROOT=SomeRemoteRepository%rsync://rsync.someremoterepository.net/slackware/slackware-10.0
#
# ------------------------------------------------------------
# Define Libraries (8.1 or Higher or Current) List Mirrors.
# (Used for Dependency Support)
#
# NOTE 1: You need to specify a Libraries List Mirror which
#         contains a 'libraries-VERSION' File.
#
# NOTE 2: To create the Libraries List, use 'swaret-tools'.
#         You can get 'swaret-tools' at http://swaret.sourceforge.net!
#         You can also clear all DEP_ROOT Variable(s) which will
#         allow swaret to create the Libraries List for you
#         during Dependency Check using the defined ROOT Variable(s) above.
#
# Syntax: DEP_ROOT=PROTOCOL:URL
#
# NOTE: swaret will use the order of the specified DEP_ROOT URL's.
#
DEP_ROOT=http://swaret.sourceforge.net
#DEP_ROOT=file:/mnt/cdrom
#DEP_ROOT=file:/mnt/dvdrom
#DEP_ROOT=file:/mnt/usbmemstick
#DEP_ROOT=file:/pub/swaret
#DEP_ROOT=file:/mnt/nfsshare/swaret
#DEP_ROOT=file:/mnt/sambashare/swaret
#
# ----------------------------------------------------------
# General Settings
#
# Do you want swaret to use Random Slackware Linux Mirrors?
# -> 1 for yes, 0 for no.
#
RANDOMR=0
#
# Do you want swaret to back-up your packages when upgradeing?
# -> If set to 1, old packages are backed up in $CACH_DIR/rollback.
#    Normally this is /var/swaret/rollback.  ROLLBACKMAX is the number
#    of "upgrades" that will be backed up before old backups will be
#    removed.  Turning on rollback means upgrading packages takes
#    longer, but it is more safe.
# -> If set to 0, swaret will not back up packages. 
#
ROLLBACK=0
ROLLBACKMAX=3
#
# Do you want swaret to parse all the Package Descriptions?
# -> If set to 1, swaret will also match Packages whose Description
#    is matching the Keyword(s) you specify after --ACTION.
#    NOTE: swaret will parse all the Package Descriptions for this,
#          and might slow down swaret when using an older System.
# -> If set to 0, swaret will not use Package Descriptions
#    to match one or more Packages.
#
USEPKGDESC=0
#
# If you don't want swaret to Upgrade, Install, Re-Install, Download,...
# some Packages, add the KEYWORDS to the EXCLUDE Variable.
# To disable Exclude Method: swaret --exclude -off
# To enable Exclude Method: swaret --exclude -on
#
# NOTE: You can add ANY EXTENDED REGEXP (Regular Expression) to the EXCLUDE Variable(s)
#
# Basic Exclude
EXCLUDE=kernel alsa lilo
EXCLUDE=swaret
EXCLUDE=aaa_
EXCLUDE=MANIFEST.bz2$
EXCLUDE=.*dl$ .*PACKAGER$ .*MYBUILD$
#
# Advanced Exclude
# Syntax: KEYWORD[DONT_EXCLUDE_ME_KEYWORD1,DONT_EXCLUDE_ME_KEYWORD2,...]
# Example: kde-i18n[nl,en_GB] koffice-i18n[nl,en_GB]
#
#EXCLUDE=kde-i18n[nl,en_GB] koffice-i18n[nl,en_GB]
#
# Do you want to enable Dependency Check?
# -> If set to 1, swaret will start the Dependency Check after
#    every Upgrade, Install and Re-Install Procedure.
# -> If set to 0, swaret will not start the Dependency Check
#    after any Procedure.
#
DEPENDENCY=1
#
# Do you want swaret to Search for missing Libraries (and Fix)
# which could be found on your System, but not tracked by ldconfig?
# -> 1 for yes, 0 for no.
#
DSEARCHLIB=1
#
# Set to 1, if you want swaret to use the 'slocate' program
# to Search for missing Libraries.
# (be sure to issue the 'updatedb' Command regularly!)
# If DSEARCHM is set to 0, swaret will use
# the 'find' program to locate missing Libraries.
# -> 1 for yes, 0 for no.
#
DSEARCHM=0
#
# Start MD5 Check after Fetching Packages, Patches and Sources?
# -> 1 for yes, 0 for no.
#
MD5CHECK=1
#
# Start GPG Signature Check after Fetching Packages, Patches and Sources?
#
# NOTE: Check out F.A.Q. (--faq gpg) how to Import a Public GPG Key which
#       will be used by the GPG Signature Check.
#
# -> 1 for yes, 0 for no.
#
GPGCHECK=0
#
# Show Description for Packages during
# Upgrade, Install, Re-Install,... Procedures?
# # -> If set to 1, you will see a Description.
#
DESC=0
#
# Cache Directory for (Repository) Packages and Sources.
#
CACHE_DIR=/var/swaret
#
# Enable Logging?
# -> 1 for yes, 0 for no.
#
LOG=1
#
# swaret Log File
#
LOG_FILE=/var/log/swaret
#
# Show Warnings?
# -> 1 for yes, 0 for no.
#
WARNINGS=1
#
# Show Information?
# -> 1 for yes, 0 for no.
#
INFORMATION=1
#
# -------------------------------------------------------------
# Network Settings
#
# Network Interface
# Use this if you have a Network Interface.
#
NIC=eth0
#
# Local Interface
# Use this if you do not have a Network Interface.
#
# For Example (CD-ROM):
# You got a Slackware Linux CD-ROM,
# mount the CD-ROM to /mnt/cdrom and
# set ROOT to 'file:/mnt/cdrom' in /etc/swaret.conf.
# Also, set NIC to 'lo' (Local Loop Device).
#
# NIC=lo
#
# Progress
# If set to 0, swaret will use the '%' Download Interface.
# If set to 1, swaret will use the 'size' Download Interface.
# If set to 2, swaret will use the 'wget/rsync' Download Interface.
#
PROGRESS=0
#
# Timeout for wget and/or rsync.
# -> Number of seconds for Timeout
#
TIMEOUT=35
#
# Retries for wget and/or rsync.
# -> Number of Retries
#
RETRIES=5
#-> If set to 0, you will not see a Description.
#
# Behind a Firewall? Using FTP Mirrors?
# -> 1 for yes, 0 for no
#
PASSIVE_FTP=1
#
# If you want HTTP or FTP Proxy Support,
# uncomment and Setup the following Variable:
#
# WGET_PROXY=http://IP or HOST:PORT
#
# If you want RSYNC Proxy Support,
# uncomment and Setup the following Variable:
#
# RSYNC_PROXY=IP or HOST:PORT
#
### /etc/swaret.conf - SWARET EXAMPLE CONFIGURATION FILE ###

I za kraj bih još hteo da dodam, da ovaj osnovni update skript može i dalje da se proširuje u zavisnosti za čega se mašina koristi i koji servisi se koriste. Važni servisi kao što su na primer ssh, http, ftp ... itd. bi u svakom slučaju posle update-a trebali da se  provere da li su restartovani u slučaju da je na njima rađen update.

kako sprečiti swaret da instalira neki paket

Posted by Bojan Delić at 2006-11-10 19:46

Ukoliko želite da instalirate neki paket koji se razlikuje od verzije koja se nalazi u Slackware current-u, ili jednostavno ne želite da instalirate novu verziju nekog paketa potrebno je da kažete swaret-u da preskoči taj paket.

Da biste to uradili kao root otvorite fajl /etc/swaret.conf i pronađite deo gde je navedena opcija EXCLUDE (ako niste mnogo menjali swaret.conf nalazi se otprilike na 140. liniji).

Več postoje neki paketi koje ne treba update-ovati (kao što su kernel i lilo). Da biste dodali novi paket potrebno je da u novu liniju upisete:

EXCLUDE=ime_programa

Konkretno u mom slučaju novi red je izgledao ovako:

EXCLUDE=parted


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: