προσάρτηση επιπλέον σκληρών δίσκων
προσπαθώ στο σύστημα μου που είναι debian 10.4, να προσαρτήσω δυο επιπλέον σκληρούς δίσκους hdd, απο άλλο σύστημα που είχε το ίδιο λειτουργικό debian 10.4. όλοι οι δίσκοι έχουν σύστημα αρχείων ext4. ο ένας εξ’αυτών ήταν κύριος δίσκος συστήματος και είχε εγκατεστημένο λειτουργικό, συγκεκριμένα debian…
στο /home ενας απλος χρηστης δεν εχει δικαιωματα εγγραφης. στον /home/username\_χρηστη ομως εχει.
Δείτε τις [distutils απλό παράδειγμα](http://docs.python.org/dist/simple-example.html) . Αυτό είναι βασικά αυτό που είναι σαν, εκτός από πραγματική εγκατάσταση scripts συνήθως περιέχουν λίγο περισσότερες πληροφορίες. Δεν έχω δει κάποια που είναι ουσιαστικά πιο περίπλοκη, όμως. Στην ουσία, το μόνο που θα δώσει μια λίστα με το τι πρέπει να εγκατασταθεί. Μερικές φορές θα πρέπει να δώσει κάποιες DICTS χαρτογράφηση δεδομένου ότι η πηγή και να εγκατασταθεί δέντρα μπορεί να μην είναι το ίδιο.


Εδώ είναι μια πραγματική ζωή (ανώνυμα) παράδειγμα:



```
#!/usr/bin/python 

from distutils.core import setup 

setup (name = 'Initech Package 3', 
          description = "Services and libraries ABC, DEF", 
          author = "That Guy, Initech Ltd", 
          author_email = "that.guy@initech.com", 
          version = '1.0.5', 
          package_dir = {'Package3' : 'site-packages/Package3'}, 
          packages = ['Package3', 'Package3.Queries'], 
          data_files = [ 
                       ('/etc/Package3', ['etc/Package3/ExternalResources.conf']) 
          ])

``` ```
os.system('xdg-open "%s"' % foldername)

```

`xdg-open` μπορεί να χρησιμοποιηθεί για τα αρχεία / urls επίσης Αυτά τα αναγνωριστικά αναφέρονται ακριβώς σε hobts ​​(Heap Ή Binary Tree), που βρέθηκαν στο sys.partitions. Δοκιμάστε το παρακάτω ερώτημα στο εσωτερικό της βάσης δεδομένων 10, και θα βρείτε ποιο αντικείμενο και η οποία δείκτη επηρεάζεται.



```
SELECT hobt_id, object_name(p.[object_id]), index_id 
FROM sys.partitions p 
WHERE hobt_id = 72057594060734464

``` Είχα ακολουθήσει ένα διαφορετικό σεμινάριο σχετικά με τη ρύθμιση Xen μου στο Ubuntu πριν από 8,04 αλλά τώρα αναβαθμίστηκε σε 8.04. Θα χρησιμοποιηθεί για την επιπλέον γραμμή στο cfg μου διαδρομής ορίζονται ως ακολούθως:



```
extra = ' TERM=xterm xencons=tty console=tty1'

```

Αυτό μου επιτρέπει να «XM κονσόλα όνομα» από dom0. Νομίζω ότι αυτό ήταν από ένα πρόβλημα με το Xen εγκατάσταση στην έκδοση πριν από την 8,04 (δεν είμαι σίγουρος ποια έκδοση που ήταν). Δεν είμαι σίγουρος αν η ίδια αλλαγή είναι απαραίτητη 8.04 και είμαι μια αναβάθμιση και δεν άλλαξε καμία από domU διαμορφώσεων μου μετά την αναβάθμιση. > 
> Θέλω να προσθέσω έναν κανόνα που ελέγχει για την παρουσία ενός αρχείου folder.jpg σε κάθε κατάλογο, αλλά για να προσθέσετε αυτό θα κάνει ο κώδικας σημαντικά πιο βρώμικο σε αυτό είναι σημερινή κατάσταση ..
> 
> 
> 


Αυτό δεν φαίνεται κακό. Στην πραγματικότητα τρέχοντα κωδικό σας κάνει πολύ όμορφα, και Sven αναφέρεται ένας καλός τρόπος για να το κάνει, καθώς:


1. Πάρτε μια λίστα με όλα τα αρχεία
2. Ελέγξτε για «απαιτείται» αρχεία


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



```
checker = {
  ...
  'required': ['file', 'list', 'for_required']
}

```

Όσον αφορά την ύπαρξη ένας καλύτερος / επεκτάσιμο τρόπο για να το κάνετε αυτό; Δεν είμαι ακριβώς σίγουρος. Θα μπορούσα μόνο να σκεφτώ έναν τρόπο για να ενδεχομένως να αποσύρει τις «πολλαπλές» κανονικές εκφράσεις και να οικοδομήσουν μακριά από την ιδέα του Sven για τη χρήση διαχωριστικό. Έτσι η στρατηγική μου θα ορίζει ένα λεξικό ως εξής (και λυπάμαι δεν ξέρω Python σύνταξη και είμαι ένα αγοράκι να τεμπέλης για να το ψάξει, αλλά θα πρέπει να έχει νόημα. Ο / regex / είναι συντομογραφία για ένα regex ):



```
check_dict = {
  'delim'    : /\-/,
  'parts'    : [ 'Show Name', 'Episode Name', 'Episode Number' ],
  'patterns' : [/valid name/, /valid episode name/, /valid number/ ],
  'required' : ['list', 'of', 'files'],
  'ignored'  : ['.*', 'hidden.txt'],
  'start_dir': '/path/to/dir/to/test/'
}

```

1. Χωρίστε το όνομα του αρχείου με βάση το διαχωριστικό.
2. Ελέγξτε καθένα από τα μέρη.


Επειδή μια ταξινομημένη λίστα του μπορείτε να καθορίσετε τι λείπει μέρη και αν ένα τμήμα δεν ταιριάζει με κανένα σχέδιο είναι ακατάλληλο. Εδώ η `parts`και `patterns`έχουν μια αναλογία 1 προς 1. Δύο σειρές αντί ενός λεξικού επιβάλλει την τάξη.


Αγνοήθηκε και απαραίτητα αρχεία μπορούν να αναφέρονται. Η `.`και `..`τα αρχεία θα πρέπει κατά πάσα πιθανότητα να αγνοηθούν αυτόματα. Ο χρήστης θα πρέπει να επιτρέπεται να εισόδου «globs» η οποία μπορεί να επεκταθεί κέλυφος. Σκέφτομαι εδώ `svn:ignore`τις ιδιότητες, αλλά globbing είναι φυσικό για την εγγραφή αρχείων.


Εδώ `start_dir`θα προεπιλογή στον τρέχοντα κατάλογο, αλλά αν θέλετε ένα ενιαίο αρχείο για να τρέξει αυτοματοποιημένη δοκιμή από μια δέσμη των καταλόγων αυτό θα ήταν χρήσιμο.


Το πραγματικό ελεύθερο άκρο εδώ είναι το πρότυπο διαδρομή και προς την ίδια κατεύθυνση απαιτείται ποιο μονοπάτι για «έγκυρα αρχεία». Πραγματικά δεν θα μπορούσε να καταλήξει σε μια σταθερή ιδέα χωρίς να γράψετε μία μεγάλη κανονική έκφραση και τη λήψη των ομάδων από αυτό ... για να χτίσει ένα πρότυπο. Ένιωσα πολύ όπως γράφει ένα TextMate γλώσσα γραμματική. Αλλά αυτό αρχίζει να απομακρυνθούν από την ευκολία χρήσης. Το πραγματικό πρόβλημα ήταν ότι το πρότυπο μονοπάτι δεν αποτελείται από `parts`, το οποίο έχει νόημα, αλλά προσθέτει πολυπλοκότητα.


Είναι αυτή η στρατηγική σε αρμονία με αυτό που σκέφτεστε; Προσωπικά, δεν θα ανησυχείτε για αυτό μέχρι να δείτε ένα πρόβλημα. Messing με την προεπιλεγμένη πύθωνα εγκατάσταση σε ένα σύστημα * Nix μπορεί να προκαλέσει περισσότερα προβλήματα από ό, τι αξίζει. Μπορώ να πω από προσωπική εμπειρία ότι ποτέ δεν πραγματικά καταλάβει τι python έχει κάνει για τον κόσμο nix μέχρι να έχετε ένα πρόβλημα με αυτό.


Μπορείτε επίσης να προσθέσετε μια δεύτερη εγκατάσταση python, αλλά ότι επίσης προκαλεί περισσότερα προβλήματα από ό, τι αξίζει ΙΜΟ.


Έτσι υποθέτω ότι το καλύτερο θέμα για να ξεκινήσετε με, θα είναι γιατί ακριβώς θέλετε να χρησιμοποιήσετε την έκδοση 64 bit του πύθωνα; Χρησιμοποιούμε [MbUnit](http://www.mbunit.com/) και [Rihno χλευάζει](http://www.ayende.com/Blog/archive/2007/03/28/Rhino-Mocks-3.0-Released.aspx) και να αποδειχθεί ότι λειτουργεί πολύ καλά μαζί. Όταν κάνετε TDD θα πρέπει σχεδόν σίγουρα να κάνετε κάποια μορφή ένεσης εξάρτησης, ενώ αυτό μπορεί να γίνει με το χέρι, την αξία του κοιτάζοντας ένα δοχείο ΔΟΕ, όπως [το Κάστρο του Windsor](http://www.castleproject.org/projects/windsor/) .


Είναι καλά αξίζει κοιτάζοντας την οθόνη του Ιωάννη Παύλου Bodhood του ρίχνει για να ξεκινήσετε. [Blog JPB του](http://www.jpboodhoo.com/) [Το έργο NPTL](http://en.wikipedia.org/wiki/Native_POSIX_Thread_Library) που εφαρμόστηκε για πρώτη φορά Pthreads σε Linux ήταν ένα ξεχωριστό έργο αρχικά προσθέτοντας υποστήριξη του πυρήνα και παρέχει τη δική της βιβλιοθήκη.


Όταν ήταν αρκετά σταθερό συγχωνεύθηκε στο glibc. Θα ήθελα να υποθέσουμε ότι οι δύο αυτές εκδόσεις είναι πανομοιότυπες σε όλες τις εγκαταστάσεις λογικά up-to-ημερομηνία.


Στο Ubuntu 8.10 το αποτέλεσμα είναι κάπως έτσι:



```
$ Getconf GNU\_LIBC\_VERSION
glibc 08/02/90
$ Getconf GNU\_LIBPTHREAD\_VERSION
NPTL 08/02/90

``` Υπάρχουν κάποιες «αμυχές» που περιλαμβάνουν τη χρήση ενός System.Core.dll από το Framework 3.5 για να τρέξει με .net 2.0, αλλά προσωπικά δεν θα ήθελα να χρησιμοποιήσετε ένα τέτοιο κάπως σαθρά θεμέλια.


Δείτε εδώ: [LINQ υποστήριξη για .NET 2.0](http://weblogs.asp.net/fmarguerie/archive/2007/09/05/linq-support-on-net-2-0.aspx)



> 
> 1. Δημιουργήστε μια νέα εφαρμογή κονσόλας
> 2. Κρατήστε μόνο συστήματος και System.Core όπως αναφέρεται συνελεύσεις
> 3. Ρύθμιση αντιγραφής Τοπική να ισχύει και για System.Core, επειδή δεν υπάρχει στο .NET 2.0
> 4. Χρησιμοποιήστε ένα ερώτημα LINQ στην Κύρια μέθοδο. Για παράδειγμα, η μία κάτω.
> 5. Χτίζω
> 6. Αντιγράψτε το σύνολο της παραγωγής κάδο σε μια μηχανή όπου μόνο είναι εγκατεστημένο το .NET 2.0
> 7. Τρέξιμο
> 
> 
> 


(Απαιτεί .net 2.0 SP1 και δεν έχω ιδέα αν ομαδοποίηση του System.Core.dll παραβιάζει την EULA) Υπάρχουν τόσοι πολλοί παράγοντες για την απόδοση του server (CPU, RAM, I / O, μνήμη cache, τοπικές ή εξωτερική βάση δεδομένων, δικτύωση, κλπ) που δεν μπορείτε να guesstimate ακόμη και το ποσό των servers που απαιτούνται για ένα συγκεκριμένο έργο.


Θεωρώ ότι όποιος προσπαθεί να το καταλάβουν αυτό θα είναι κάτω τούτοις λάθος δρόμο, επειδή συχνά έχουν κάποια ρεαλιστική ιδέα ότι η περιοχή πρόκειται να κάνει αυτό πρόκειται να είναι εξωφρενικά δημοφιλές.


Η συμβουλή μου, μόνο την κατασκευή της εφαρμογής σας και να χρησιμοποιήσετε 1 διακομιστές, ας υποθέσουμε μπορεί να χρειαστεί ένα σύμπλεγμα διακομιστών, έτσι χτίσει το λογισμικό σας ανάλογα (η οποία με τη ΝΕΤ σημαίνει λίγο πολύ ότι δεν κάνει τίποτα διαφορετικό). Μόνο αγοράσουν περισσότερους servers όταν έχετε μια πραγματική ανάγκη, την αγορά / ενοικίαση διακομιστών σε αναμονή θα οδηγήσει πάντα να σπαταλούνται τα χρήματα, δεν είστε Amazon, ούτε το Google, δεν μπορούμε να υποθέσουμε με ακρίβεια τη μελλοντική επέκταση μέχρι να έχετε τα σημερινά στοιχεία.


Νομίζω ότι θα βρείτε 1 καλή server είναι εκπληκτικά γρήγορο και μπορεί να χειριστεί πολλούς χρήστες. Λάβετε υπόψη StackOverflow (τελευταία είδα) λειτουργεί μόνο σε 2 servers? ένα web server και ένα διακομιστή βάσης δεδομένων ... αυτό είναι όλο.