32-lib installation script for slackel x86_64 -- EXTREME MAKEOVER

slackware | Παρ, 09/06/2013 - 02:39 | 4' | 15

Εδω θα βρειτε ενα σκριπτ το οποιο φτιαχτηκε για slackel x86_64.

Κατεβαζει απο το http://connie.slackware.com/~alien/multilib/ τα 32-lib και τα εγκαθηστα.

Μετα καλο ειναι να βαλετε σε blacklist στο slapt-get τα gcc* & glibc* για να μην γινουν update.

 

 

 

 

 

#!/bin/bash
##################################################################
#
# This script created for slackel x86_64 only.
# It install the binaries in order to support 32-bit applications
# The installation and instructions found on the below web site
# http://connie.slackware.com/~alien/multilib/
#
# If you have any questions or suggestion please email me at
# [email protected]
#
##################################################################
slackware_version=`grep slackel /etc/slapt-get/slapt-getrc |grep -i slackware-*|cut -d/ -f6|uniq|awk -F - '{print $2}'`
OS_bit=`cat /etc/slapt-get/slapt-getrc |grep x86_64|cut -d/ -f4|uniq|grep -v repo`
if [ $OS_bit = "x86_64" ]; then
        which lftp > /dev/null
        if [ $? -eq 1 ]; then
                echo "You need lftp... installing it"
                slapt-get --install lftp -y
        fi
        echo "Download the 32bit packages for slackel: " $slackware_version "Please wait..."
        `lftp -c 'open http://slackware.com/~alien/multilib/ ; mirror '$slackware_version`
        cd $slackware_version
        echo "Upgrading/Installing gcc/glibc 64-bit...and new pkg"
        upgradepkg --reinstall --install-new *.t?z
        echo "Done"
        echo "Installing the 32-bit pkgs"
        echo "5 sec for sleeping...I have a lot of work to do..."
        sleep 5;
        echo -n "Do you want to download the most recent packages or to install the packages whic are already downloaded? [Download/Local]: "
        read reply
        case $reply in
                Download|download)
                        echo "Download the packages, converting and installing them..."
                        mkdir $PWD/tmp
                        cd tmp
                        massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-current/slackware/
                        upgradepkg --install-new *-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
                Local|local)
                        echo "Installing from the local repo"
                        upgradepkg --install-new $PWD/slackware64-compat32/*-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
                *)      echo "Default is local...Proceed with installation"
                        upgradepkg --install-new $PWD/slackware64-compat32/*-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
        esac
echo "Please add in blacklist gcc* and glibc*, for not upgrade them with slapt-get"
fi

 

 

 

Αναμενω σχολια και προτασεις... Αν εχετε φυσικα

Δώσε αστέρια!
Σχόλια

Ωραίος - νομίζω ότι καλό είναι να το έχει υπόψη του και ο djemos μήπως θέλει να το βάλει σε κάποια τεκμηρίωση της διανομής.

Το συγκεκριμμένο δουλεύει μόνο με το slackel (ή το slackware current) αφού εγκαθιστά τη multilib από το "current" tree του slackware. Και ως εκ τούτου είναι πιο εύχρηστο αφού ο χρήστης δεν χρειάζεται να επεμβαίνει σε αρχεία ρυθμίσεων κλπ

Η εργασία δηλαδή του φίλου slackware θα είναι πολύ χρήσιμη.

Για το salix απλά θα χρειαστεί τροποποίηση για να δουλεύει με το stable tree του slackware.

Θα γράψω ένα σχετικό αρθράκι στο site του slackel.

Επίσης σαν πληροφορία υπάρχει και το εργαλείο (tool) slackpkg+ (http://slakfinder.org/slackpkg+.html) http://www.slakfinder.org/slackpkg+/ το οποίο είναι χρήσιμο για τους χρήστες του slackware ώστε να χρησιμοποιούν αποθετήρια διανομών συμβατών με το slackware και να εγκαθιστούν και να έχουν το σύστημα τους ενημερωμένο με τη τελευταία έκδοση της multilib.

και όπως φαίνεται εδω http://slakfinder.org/slackpkg+/src/repositories.txt τα αποθετήρια του salix και του slackel περιέχονται εξ' ορισμού.

Αξίζουν ευχαριστίες στον φίλο slackware για το script.

@djemos Για αρχη

1) η γραμμη αυτη
slackware_version=`grep slackel /etc/slapt-get/slapt-getrc |grep -i slackware-*|cut -d/ -f6|uniq|awk -F - '{print $2}'`

σου επιστρεφει την εκδοση που εχεις (current, 14, 13.1 etc) οποτε μπορει να παιξει και σε αλλες εκτος του current.

 

2) Δεν ξερω πως ειναι το slapt-getrc του salix ωστε να το τροποοιησω και για την συγκεκριμενη διανομη, αλλωστε τωρα που το ξανασκεφτομαι δεν ειναι δυσκολη η τροποοιηση του σε salix. Το βραδακι που θα κοιμαται η μικρη θα το δοκιμασω.

@dsyrmalis

Υπαρχει η εγκατασταση των video codec οχι των 32-bit libraries & pkgs.

Επειδη ειμαι γνωστος τεμπελης μου πειρε 10-15 λεπτα να τα γραψω για να τρεξω 1-2 32bit προγραμματα :)

 

 

 

 

 

Ειπα να τροποποιησω λιγο το θεμα ετσι για να τραβιξω τα βλεματα

Το τροποποιησα ωστε να υποστιριζει και salix και μεχρι στιγμης δουλευει και στα 2.

Αν καποιος θελει να το δοκιμασει και να μου πει τι του παει στραβα καλο θα εκανε :-)

 

 

#!/bin/bash
##################################################################
#
# This script created for slackel/salix x86_64 only.
# It install the binaries in order to support 32-bit applications
# The installation and instructions found on the below web site
# http://connie.slackware.com/~alien/multilib/
#
# If you have any questions or suggestion please email me at
# [email protected]
#
##################################################################
slackware_os=`uname -n`
if [ $slackware_os = "slackel" ]; then
slackware_version=`grep $slackware_os /etc/slapt-get/slapt-getrc |grep -i slackware-*|cut -d/ -f6|uniq|awk -F - '{print $2}'`
else
slackware_version=`grep $slackware_os /etc/slapt-get/slapt-getrc |grep -i slackware-*|cut -d/ -f5|uniq|grep -v "index.php"|awk -F - '{print $2}'`
fi
slackware_bit=`cat /etc/slapt-get/slapt-getrc|grep x86_64|cut -d/ -f4 |uniq|grep -v repo`
function download_files_wget
{
`wget -rqm --no-parent --reject "robots.txt" --reject "index.html*" --reject "icons" --no-host-directories --cut-dirs=2 http://slackware.com/~alien/multilib/$slackware_version/`
}
function check_ftp
{
        which wget > /dev/null
                if [ $? -eq 1 ]; then
                        echo "wget is not installed... "
                        missing="m_wget"
                else
                        missing="wget"
                fi
}
function check_multilib
{
gcc_multi=`ls -l /var/log/packages/gcc*multilib*|wc -l`
        if [ $gcc_multi -eq 0 ]; then
                echo "gcc multilib is not installed. Will install it..."
                missing="gcc"
        fi
glibc_multi=`ls -l /var/log/packages/glibc*multilib*|wc -l`
        if [ $glibc_multi -eq 0 ]; then
                echo "glibc multilib is not installed. Will install it..."
                missing="glibc"
        fi
}
compat32=`ls -l /var/log/packages/compat32*|wc -l`
check_ftp
if [ $missing = "wget" ]; then
         echo "Downloading files...Please wait"
        download_files_wget
fi
if [ $compat32 -eq 0 ]; then
        echo "Installing compat32 pkg"
        cd $PWD/$slackware_version
        installpkg compat32*.t?z
fi
check_multilib
if [ $missing = "gcc" ]; then
        echo "Installing gcc multilib..."
        cd $PWD/$slackware_version
        upgradepkg --reinstall --install-new gcc*.t?z
        installpkg compat32*.t?z
fi
if [ $missing = "glibc" ]; then
        echo "Installing glibc multilib..."
        cd $PWD/$slackware_version
        upgradepkg --reinstall --install-new glibc*.t?z
        installpkg compat32*.t?z
fi
 echo -n "Do you want to download the most recent packages or to install the packages whic are already downloaded? [Download/Local]: "
read reply
case $reply in
       Download|download)
               echo "Download the packages, converting and installing them..."
               mkdir $PWD/tmp
               cd tmp
               massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-$slackware_version/slackware/
               upgradepkg --install-new *-compat32/*.t?z
               echo "Done"
               exit 0
               ;;
        Local|local)
               echo "Installing from the local repo"
               upgradepkg --install-new $PWD/$slackware_version/slackware64-compat32/*-compat32/*.t?z 
               echo "Done"
               exit 0
               ;;
        *)      echo "Default is local...Proceed with installation"
                upgradepkg --install-new $PWD/$slackware_version/slackware64-compat32/*-compat32/*.t?z 
                echo "Done"
                exit 0
                ;;
esac
echo "Done"

 

 

 

Προσοχη μην εχει σπασει καμια γραμμη κατα την αντιγραφη...

Διορθοσα τις πιο πολλες αλλα ποτε δεν ξερεις...

To αρχικό script , το οποίο περιέχει html κώδικα και δεν τρέχει μάλλον από copy/paste

To δεύτερο επίσης έχει html κώδικα αλλά επίσης εμφανίζει λάθη αφού δεν έχει εγκατασταθεί η multilib ( ls -l /var/log/packages/gcc*multilib*|wc -l)

Διόρθωσα το αρχικό script για να εγκαθιστά τη multilib σε slackel και slackware current αλλά και σε όλες τις εκδόσεις Salix και slackware stable.

Για να εγκαταστήσουμε την multilib, τρέχουμε σαν root το παρακάτω script

1. Για το Slackel - Slackware current (sh install_multilib.sh)

2. Για το Salix - Slackware stable (SLACK_VER=14.0 sh install_multilib.sh)

Για τις επόμενες εκδόσεις απλά αλλάζετε το 14.0

Δεν ξέρω αν αξίζει το κόπο να γίνει και gui σε python.

#!/bin/bash
##################################################################
####                      install_multilib.sh                 ####
##################################################################
# This script created for slackel/salix x86_64 only.
#
# It install the binaries in order to support 32-bit applications
#
# For Slackel run the script as root typing "sh install_multilib.sh"
# For Salix run the script as root typing "SLACK_VER=14.0 sh install_multilib.sh"
#
# The installation and instructions found on the below web site
# http://connie.slackware.com/~alien/multilib/
#
#
#
#
##################################################################
if [ "$UID" != "0" ]; then
    echo "You need to be root to run this"
    exit 1
fi

SLACK_VER=${SLACK_VER:-current}

if [ $SLACK_VER = "current" ]; then
  DISTRO="slackel"
else
  DISTRO="salix"
fi

ARCH=`uname -m`
if [ $ARCH = "x86_64" ]; then
        which lftp > /dev/null
        if [ $? -eq 1 ]; then
                echo "You need lftp... installing it"
                slapt-get --install lftp -y
        fi
        
        echo "Download the 32bit packages for $DISTRO: " $SLACK_VER
        echo "Please wait..."
        echo ""
         lftp -c "open http://slackware.com/~alien/multilib/ ; mirror $SLACK_VER"
         
        cd $SLACK_VER
        echo "Upgrading/Installing gcc/glibc 64-bit...and new pkg"
        upgradepkg --reinstall --install-new *.t?z
        echo "Done"
        
        echo "Installing the 32-bit pkgs"
        echo "5 sec for sleeping...I have a lot of work to do..."
        sleep 5;
        echo -n "Do you want to download the most recent packages or to install the packages which are already downloaded? [Download/Local]: "
        read reply
        case $reply in
                Download|download)
                        echo "Download the packages, converting and installing them..."
                        mkdir $PWD/tmp
                        cd tmp
                        massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-$SLACK_VER/slackware/
                        upgradepkg --reinstall --install-new *-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
                Local|local)
                        echo "Installing from the local repo"
                        upgradepkg --reinstall --install-new $PWD/slackware64-compat32/*-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
                *)      echo "Default is local...Proceed with installation"
                        upgradepkg --reinstall --install-new $PWD/slackware64-compat32/*-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
        esac
echo "Please add in blacklist gcc* and glibc*, for not upgrade them with slapt-get"

else
echo "Run this script on a x86_64 Slackware/Slackel/Salix system"
fi

 

Και μια άλλη παραλλαγή που εγκαθιστά τη multilib για όλες τις εκδόσεις slackel/salix/slackware

τρέχοντας σαν root "sh install_multilib.sh"

#!/bin/bash
##################################################################
####                      install_multilib.sh                 ####
####################################################################################################################################
# This script created for slackel/salix x86_64 only.
#
# It install the binaries in order to support 32-bit applications
#
# run the script as root typing "sh install_multilib.sh"
#
#
# The installation and instructions found on the below web site
# http://connie.slackware.com/~alien/multilib/
#
#
#
#
##################################################################
if [ "$UID" != "0" ]; then
    echo "You need to be root to run this"
    exit 1
fi

DISTRO=`uname -n`

if [ $DISTRO = "slackel" ]; then
  SLACK_VER="current"
else
  SLACK_VER=`cat /etc/slackware-version | cut -c11-18`
fi

ARCH=`uname -m`
if [ $ARCH = "x86_64" ]; then
        which lftp > /dev/null
        if [ $? -eq 1 ]; then
                echo "You need lftp... installing it"
                slapt-get --install lftp -y
        fi
        
        echo "Download the 32bit packages for $DISTRO: " $SLACK_VER
        echo "Please wait..."
        echo ""
         lftp -c "open http://slackware.com/~alien/multilib/ ; mirror $SLACK_VER"
         
        cd $SLACK_VER
        echo "Upgrading/Installing gcc/glibc 64-bit...and new pkg"
        upgradepkg --reinstall --install-new *.t?z
        echo "Done"
        
        echo "Installing the 32-bit pkgs"
        echo "5 sec for sleeping...I have a lot of work to do..."
        sleep 5;
        echo -n "Do you want to download the most recent packages or to install the packages which are already downloaded? [Download/Local]: "
        read reply
        case $reply in
                Download|download)
                        echo "Download the packages, converting and installing them..."
                        mkdir $PWD/tmp
                        cd tmp
                        massconvert32.sh -u http://slackware.mirrors.tds.net/pub/slackware/slackware-$SLACK_VER/slackware/
                        upgradepkg --reinstall --install-new *-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
                Local|local)
                        echo "Installing from the local repo"
                        upgradepkg --reinstall --install-new $PWD/slackware64-compat32/*-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
                *)      echo "Default is local...Proceed with installation"
                        upgradepkg --reinstall --install-new $PWD/slackware64-compat32/*-compat32/*.t?z
                        echo "Done"
                        exit 0
                        ;;
        esac
echo "Please add in blacklist gcc* and glibc*, for not upgrade them with slapt-get"
else
echo "Run this script on a x86_64 system"
fi

 

Χμμμμ ο HTML κώδικας θα μπήκε γιατί χρησιμοποίησα το tag code
Θα κάνω defaul εγκατάσταση και θα τα δοκιμάσω.

GUI δεν νομίζω ότι αξίζει αλλά μπορεί να μπει ένας timer για να δίνει την default τιμή στην case

Για τον εισαγωγή κώδικα στα δημοσιεύματα, δείτε τις επιλογές εδώ.  Slackware και djemos, αν δεν σας βολεύει η λειτουργία του κουμπιού code του editor (που κάνει συντακτικό χρωματισμό και όντως ο browser μπορεί να βάζει κάποιο extra html στην αντιγραφή) υπάρχει και η δεύτερη επιλογή με το κουμπί pre. Αυτό δεν κάνει συντακτικό χρωματισμό και κρατάει αποστάσεις, κενά κοκ.

 

Το install-multilib έγινε πακέτο και υπάρχει μόνο στα 64bit αποθετήρια του slackel

εγκατάσταση με slapt-get -u 

slapt-get -i install-multilib

Δοκιμάστηκε στα forum του salix και δουλεύει. Οι χρήστες του salix θα πρέπει να το κατεβάσουν και να το εγκαταστήσουν αφού δεν υπάρχει στα αποθετήρια του salix.

Εχει και μετάφραση των μηνυμάτων στα ελληνικά. Για άλλες γλώσσες η μετάφραση γινεται με το poedit και το αντίστοιχο .po αρχείο αφού το δημιουργήστε.

ο source κώδικας στο github

και επίσης το binary πακέτο και το SLKBUILD με το source κώδικα εδω

με 

su
install-multilib ή install-multilib help ή install-multilib h

έχετε τη βοήθεια

 

ΧΡΗΣΗ: install-multilib [salix|slackel] [local|download]

ΕΠΙΛΟΓΕΣ:
   salix,   εγκατάσταση της multilib για όλες τις εκδόσεις του Salix
   slackel, εγκατάσταση της multilib για όλες τις εκδόσεις του  slackel current
   local,   εγκατάσταση από το τοπικό αποθετήριο
download,  Μεταφόρτωση πακέτων, μετατροπή και εγκατάσταση αυτών...
================================== ΠΡΟΣΟΧΗ ===============================
Παρακαλώ προσθέστε στη blacklist το gcc* και glibc*, για να μην ενημερωθούν με το slapt-get
==========================================================================



 

Π.Χ. install-multilib slackel local ή install-multilib salix local

Παρακαλείται ο slackware να στείλει ένα προσωπικό μήνυμα, email για να τον προσθέσω στο αρχείο Authors  Π.Χ. αντίστοιχο του 

Dimitris Tzemos <djemos~at~slackel~dot~gr>

 

+1 για τον slackware - Μπαίνει με το σπαθί του στο hall of fame :)

+1 και από μένα, για τον slackware  :-)

Και μην ξεχάστε να αναβαθμίσετε το slackel σύστημα σας.

Πολλά πακέτα αναβαθμίστηκαν ή προστέθηκαν στα repos, όπως
murmur-1.2.4, mumble-1.2.4, lsb-release, vlc-2.0.8, vlsub-0.9.10,
filezilla-3.7.3, install-multilib-1.0.0, libreoffice-4.1.1, libreoffice-l10n-YOUR-LOCALE-4.1.1,
libreoffice-help-YOUR-LOCALE-4.1.1, skype-4.2.0.11, google-chrome-29.0.1547.62, tor-browser-en-US-2.3.25.12, os-prober-1.63