[Advcomparch] σχετικά με τα προβλήματα μεταγλώττισης

Alexandros Konstantinakis - Karmis aeolist at ece.ntua.gr
Sat Jun 14 21:06:25 EEST 2008


Encoding: UTF-8

το πρόβλημα βρίσκεται κατά πάσα πιθανότητα στην εξής λεπτομέρεια:

τα installation scripts περιέχουν την γραμμή

/source ./build-common/

που λέει στο shell να διαβάσει/τρέξει το αρχείο build-common, που 
περιέχει μεταβλητές που χρησιμοποιούνται στην συνέχεια (GNUSRC κτλπ)

η εντολή source είναι εσωτερικό function του bash και δουλεύει σίγουρα 
εκεί. Όμως ότι shell και να τρέχει κανείς όταν εκτελέσει κάποιο από τα 
build scripts, το script θα τρέξει με το εκτελέσιμο /bin/sh (αυτό λέει η 
γραμμή #!/bin/sh στην αρχή)

Το sh είναι ένα παλαιότερο shell που δεν χρησιμοποιείται πια, 
συνηθίζεται να γίνεται soft link (αντίστοιχο του "shortcut" των windows) 
με κάποιο άλλο shell και μάλιστα σχεδόν πάντα στο bash, που είναι το 
shell που έχει επικρατήσει σήμερα.

πράγματι στο debian ισχύει

/$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 2008-02-20 22:23 /bin/sh -> bash/

αλλά στο ubuntu δεν ισχύει

/$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 2008-04-12 04:45 /bin/sh -> dash/

μια αλλάγη που έχει γίνει εδώ και καιρό: https://wiki.ubuntu.com/DashAsBinSh

φυσικά το dash δεν έχει source function... για αυτό και εμφανίζεται η 
γραμμή

/./build-1-binutils: 4: source: not found/

σε όποιον πάει να τρέξει τα scripts από ubuntu

*εν ολίγοις:* το πιο εύκολο που μπορείτε να κάνετε αν αντιμετωπίζεται 
αυτό το πρόβλημα είναι να αντικαταστήσετε το #!/bin/sh σε #!/bin/bash σε 
όλα τα build scripts.



More information about the Advcomparch mailing list