Κάτι άλλο: Πακέτα εφαρμογών Haiku;

Κάτι άλλο: Πακέτα εφαρμογών Haiku;

TL? DR: Μπορεί το Haiku να λάβει την κατάλληλη υποστήριξη για πακέτα εφαρμογών, όπως καταλόγους εφαρμογών (όπως .app σε Mac) ή/και εικόνες εφαρμογών (Linux AppImage)? Νομίζω ότι αυτή θα ήταν μια αξιόλογη προσθήκη που είναι πιο εύκολο να εφαρμοστεί σωστά από άλλα συστήματα, καθώς το μεγαλύτερο μέρος της υποδομής είναι ήδη σε θέση.

Πριν από μία εβδομάδα Ανακάλυψα το Haiku, ένα απροσδόκητα καλό σύστημα. Λοιπόν, αφού εδώ και καιρό με ενδιαφέρουν οι κατάλογοι και οι εικόνες εφαρμογών (εμπνευσμένο από την απλότητα του Macintosh), δεν είναι περίεργο που μου ήρθε μια ιδέα στο μυαλό...

Για πλήρη κατανόηση, είμαι ο δημιουργός και ο συγγραφέας του AppImage, μιας μορφής διανομής εφαρμογών Linux που στοχεύει στην απλότητα του Mac και δίνει πλήρη έλεγχο στους συντάκτες εφαρμογών και στους τελικούς χρήστες (αν θέλετε να μάθετε περισσότερα, βλ. wiki и τεκμηρίωση).

Τι γίνεται αν φτιάξουμε ένα AppImage για Haiku;

Ας σκεφτούμε λίγο, καθαρά θεωρητικά: τι πρέπει να γίνει για να πάρεις AppImage, ή κάτι παρόμοιο, στο Χαϊκού; Δεν είναι απαραίτητο να δημιουργήσετε κάτι αυτή τη στιγμή, γιατί το σύστημα που υπάρχει ήδη στο Haiku λειτουργεί εκπληκτικά, αλλά ένα φανταστικό πείραμα θα ήταν ωραίο. Αποδεικνύει επίσης την πολυπλοκότητα του Haiku, σε σύγκριση με τα περιβάλλοντα επιφάνειας εργασίας Linux, όπου τέτοια πράγματα είναι τρομερά δύσκολα (έχω το δικαίωμα να το πω: παλεύω με τον εντοπισμό σφαλμάτων εδώ και 10 χρόνια).

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Στο Macintosh System 1, κάθε εφαρμογή ήταν ένα ξεχωριστό αρχείο που «διαχειριζόταν» στο Finder. Χρησιμοποιώντας το AppImage προσπαθώ να αναδημιουργήσω την ίδια εμπειρία χρήστη στο Linux.

Πρώτον, τι είναι το AppImage; Αυτό είναι ένα σύστημα για την κυκλοφορία εφαρμογών τρίτων (για παράδειγμα, Ultimaker Cure), επιτρέποντας στις εφαρμογές να κυκλοφορούν όποτε και όπως θέλουν: δεν χρειάζεται να γνωρίζουμε τις ιδιαιτερότητες των διαφόρων διανομών, να δημιουργήσουμε πολιτικές ή να δημιουργήσουμε υποδομές, δεν απαιτείται υποστήριξη συντηρητή και δεν λένε στους χρήστες τι (όχι) μπορούν να εγκαταστήσουν στους υπολογιστές τους. Το AppImage πρέπει να γίνει κατανοητό ως κάτι παρόμοιο με ένα πακέτο Mac στη μορφή .app μέσα στην εικόνα του δίσκου .dmg. Η κύρια διαφορά είναι ότι οι εφαρμογές δεν αντιγράφονται, αλλά παραμένουν μέσα στο AppImage για πάντα, όπως περίπου τα πακέτα Haiku .hpkg τοποθετήθηκε και δεν εγκαταστάθηκε ποτέ με τη συνήθη έννοια.

Κατά τη διάρκεια περισσότερων από 10 ετών ύπαρξης, το AppImage έχει αποκτήσει κάποια απήχηση και δημοτικότητα: ο ίδιος ο Linus Torvalds το ενέκρινε δημόσια και κοινά έργα (για παράδειγμα, LibreOffice, Krita, Inkscape, Scribus, ImageMagick) το έχουν υιοθετήσει ως τον κύριο τρόπο. για τη διανομή συνεχών ή νυχτερινών εκδόσεων, χωρίς παρεμβολές σε εγκατεστημένες ή απεγκατεστημένες εφαρμογές χρηστών. Ωστόσο, τα περιβάλλοντα και οι διανομές επιτραπέζιων υπολογιστών Linux τις περισσότερες φορές εξακολουθούν να προσκολλώνται στο παραδοσιακό, κεντρικό μοντέλο διανομής που βασίζεται σε συντηρητές και/ή να προωθούν τις δικές τους επιχειρηματικές επιχειρήσεις ή/και προγράμματα μηχανικής που βασίζονται σε Flatpak (RedHat, Fedora, GNOME) και Ζωηρός (Canonical, Ubuntu). Ερχεται γελοία.

Πώς λειτουργούν όλα

  • Κάθε AppImage περιέχει 2 μέρη: ένα μικρό διπλό κλικ ELF (το λεγόμενο. runtime.c), ακολουθούμενη από μια εικόνα συστήματος αρχείων SquashFS.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;

  • Το σύστημα αρχείων SquashFS περιέχει το ωφέλιμο φορτίο της εφαρμογής και όλα όσα χρειάζονται για την εκτέλεσή της, το οποίο δεν μπορεί να θεωρηθεί μέρος της προεπιλεγμένης εγκατάστασης για κάθε αρκετά πρόσφατο σύστημα στόχου (διανομή Linux). Περιέχει επίσης μεταδεδομένα, όπως το όνομα της εφαρμογής, τα εικονίδια, τους τύπους MIME κ.λπ., κ.λπ.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;

  • Όταν εκτελείται από τον χρήστη, ο χρόνος εκτέλεσης χρησιμοποιεί FUSE και squashfuse για την προσάρτηση του συστήματος αρχείων και, στη συνέχεια, χειρίζεται την εκτέλεση κάποιου σημείου εισόδου (γνωστός και ως AppRun) μέσα στο προσαρτημένο AppImage.
    Το σύστημα αρχείων αποπροσαρτάται μετά την ολοκλήρωση της διαδικασίας.

Όλα φαίνονται απλά.

Και αυτά τα πράγματα περιπλέκουν τα πάντα:

  • Με μια τέτοια ποικιλία διανομών Linux, τίποτα «με το σωστό μυαλό» δεν μπορεί να ονομαστεί «μέρος της προεπιλεγμένης εγκατάστασης για κάθε νέο σύστημα στόχο». Εργαζόμαστε γύρω από αυτό το ζήτημα χτίζοντας κατάλογος αποκλεισμού, επιτρέποντάς σας να προσδιορίσετε τι θα συσκευαστεί στο AppImage και τι θα χρειαστεί να μεταφερθεί κάπου αλλού. Ταυτόχρονα, μερικές φορές μας λείπει, παρά το γεγονός ότι, γενικά, όλα λειτουργούν υπέροχα. Για αυτόν τον λόγο, συνιστούμε στους δημιουργούς πακέτων να δοκιμάσουν το AppImages σε όλα τα συστήματα-στόχους (διανομές).
  • Τα ωφέλιμα φορτία εφαρμογών πρέπει να μπορούν να μετακινηθούν σε όλο το σύστημα αρχείων. Δυστυχώς, πολλές εφαρμογές έχουν σκληρά κωδικοποιημένες απόλυτες διαδρομές προς, για παράδειγμα, πόρους /usr/share. Αυτό πρέπει να διορθωθεί με κάποιο τρόπο. Επιπλέον, πρέπει είτε να κάνετε εξαγωγή LD_LIBRARY_PATH, ή διορθώστε rpath έτσι ώστε ο φορτωτής να μπορεί να βρει σχετικές βιβλιοθήκες. Η πρώτη μέθοδος έχει τα μειονεκτήματά της (τα οποία ξεπερνιούνται με πολύπλοκους τρόπους) και η δεύτερη είναι απλά δυσκίνητη.
  • Η μεγαλύτερη παγίδα UX για τους χρήστες είναι αυτή ορίστε εκτελέσιμο bit Το αρχείο AppImage μετά τη λήψη. Είτε το πιστεύετε είτε όχι, αυτό είναι ένα πραγματικό εμπόδιο για κάποιους. Η ανάγκη να ορίσετε το bit εκτελέσιμου είναι επαχθής ακόμη και για έμπειρους χρήστες. Ως λύση, προτείναμε την εγκατάσταση μιας μικρής υπηρεσίας που παρακολουθεί τα αρχεία AppImage και ορίζει το bit εκτελεσιμότητάς τους. Στην καθαρή του μορφή, δεν είναι η καλύτερη λύση, αφού δεν θα λειτουργήσει εκτός συσκευασίας. Οι διανομές Linux δεν παρέχουν αυτήν την υπηρεσία, επομένως, οι χρήστες έχουν μια κακή εμπειρία.
  • Οι χρήστες Linux αναμένουν ότι μια νέα εφαρμογή θα έχει ένα εικονίδιο στο μενού εκκίνησης. Δεν μπορείτε να πείτε στο σύστημα: "Κοίτα, υπάρχει μια νέα εφαρμογή, ας δουλέψουμε". Αντίθετα, σύμφωνα με την προδιαγραφή XDG, πρέπει να αντιγράψετε το αρχείο .desktop στο σωστό μέρος /usr για εγκατάσταση σε όλο το σύστημα ή σε $HOME για ατομικό. Εικονίδια ορισμένων μεγεθών, σύμφωνα με την προδιαγραφή XDG, πρέπει να τοποθετούνται σε συγκεκριμένα σημεία usr ή $HOMEκαι, στη συνέχεια, εκτελέστε εντολές στο περιβάλλον εργασίας για να ενημερώσετε την κρυφή μνήμη των εικονιδίων ή ελπίζετε ότι ο διαχειριστής περιβάλλοντος εργασίας θα το καταλάβει και θα εντοπίσει αυτόματα τα πάντα. Το ίδιο και με τους τύπους MIME. Ως λύση, προτείνεται η χρήση της ίδιας υπηρεσίας, η οποία, εκτός από τη ρύθμιση της επισήμανσης εκτελέσιμης λειτουργίας, θα, εάν υπάρχουν εικονίδια κ.λπ. στο AppImage, αντιγράψτε τα από το AppImage στα σωστά σημεία σύμφωνα με το XDG. Όταν διαγραφεί ή μετακινηθεί, η υπηρεσία αναμένεται να διαγράψει τα πάντα. Φυσικά, υπάρχουν διαφορές στη συμπεριφορά κάθε περιβάλλοντος εργασίας, στις μορφές αρχείων γραφικών, τα μεγέθη τους, τις θέσεις αποθήκευσης και τις μεθόδους ενημέρωσης της κρυφής μνήμης, γεγονός που δημιουργεί πρόβλημα. Με λίγα λόγια, αυτή η μέθοδος είναι δεκανίκι.
  • Εάν τα παραπάνω δεν είναι αρκετά, εξακολουθεί να μην υπάρχει το εικονίδιο AppImage στη διαχείριση αρχείων. Ο κόσμος του Linux δεν έχει ακόμη αποφασίσει να εφαρμόσει το elficon (παρά τη συζήτηση и εκτέλεση), επομένως είναι αδύνατο να ενσωματώσετε το εικονίδιο απευθείας στην εφαρμογή. Αποδεικνύεται λοιπόν ότι οι εφαρμογές στη διαχείριση αρχείων δεν έχουν τα δικά τους εικονίδια (καμία διαφορά, AppImage ή κάτι άλλο), βρίσκονται μόνο στο μενού έναρξης. Ως λύση, χρησιμοποιούμε μικρογραφίες, έναν μηχανισμό που σχεδιάστηκε αρχικά για να επιτρέπει στους διαχειριστές επιτραπέζιων υπολογιστών να εμφανίζουν εικόνες προεπισκόπησης μικρογραφιών αρχείων γραφικών ως εικονίδια τους. Ως εκ τούτου, η υπηρεσία για τη ρύθμιση του bit εκτελέσιμης λειτουργίας λειτουργεί επίσης ως «μικροσκοπητής», δημιουργώντας και γράφοντας μικρογραφίες εικονιδίων στις κατάλληλες θέσεις /usr и $HOME. Αυτή η υπηρεσία εκτελεί επίσης εκκαθάριση εάν το AppImage διαγραφεί ή μετακινηθεί. Λόγω του γεγονότος ότι κάθε διαχειριστής επιφάνειας εργασίας συμπεριφέρεται ελαφρώς διαφορετικά, για παράδειγμα, σε ποιες μορφές δέχεται εικονίδια, σε ποια μεγέθη ή μέρη, όλα αυτά είναι πραγματικά οδυνηρά.
  • Η εφαρμογή απλώς διακόπτεται κατά την εκτέλεση εάν προκύψουν σφάλματα (για παράδειγμα, υπάρχει μια βιβλιοθήκη που δεν είναι μέρος του βασικού συστήματος και δεν παρέχεται στο AppImage) και δεν υπάρχει κανείς που να λέει στο χρήστη στο GUI τι ακριβώς συμβαίνει. Αρχίσαμε να το ξεπερνάμε χρησιμοποιώντας ειδοποιήσεις στην επιφάνεια εργασίας, πράγμα που σημαίνει ότι πρέπει να εντοπίζουμε σφάλματα από τη γραμμή εντολών, να τα μετατρέπουμε σε μηνύματα κατανοητά από τον χρήστη, τα οποία στη συνέχεια πρέπει να εμφανίζονται στην επιφάνεια εργασίας. Και φυσικά, κάθε περιβάλλον επιφάνειας εργασίας τα χειρίζεται λίγο διαφορετικά.
  • Αυτή τη στιγμή (Σεπτέμβριος 2019 - σημείωση μεταφραστή) δεν έχω βρει έναν απλό τρόπο να πω στο σύστημα ότι το αρχείο 1.png πρέπει να ανοίξει χρησιμοποιώντας το Krita και 2.png - χρησιμοποιώντας το GIMP.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Θέση αποθήκευσης για προδιαγραφές πολλαπλών επιτραπέζιων υπολογιστών που χρησιμοποιούνται σε GNOME, KDE и Xfce είναι το freedesktop.org

Η επίτευξη του επιπέδου πολυπλοκότητας που ενσωματώνεται βαθιά στο περιβάλλον εργασίας Χαϊκού είναι δύσκολη, αν όχι αδύνατη, λόγω των προδιαγραφών XDG από το freedesktop.org για cross-desktop, καθώς και υλοποιήσεις διαχειριστών επιτραπέζιων υπολογιστών με βάση αυτές τις προδιαγραφές. Ως παράδειγμα, μπορούμε να αναφέρουμε ένα εικονίδιο Firefox σε όλο το σύστημα: προφανώς, οι συντάκτες του XDG δεν σκέφτηκαν καν ότι ένας χρήστης θα μπορούσε να έχει εγκαταστήσει πολλές εκδόσεις της ίδιας εφαρμογής.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Εικονίδια για διαφορετικές εκδόσεις του Firefox

Αναρωτιόμουν τι θα μπορούσε να μάθει ο κόσμος του Linux από το Mac OS X για να αποφύγει τη φθορά της ενοποίησης του συστήματος. Εάν έχετε χρόνο και ασχολείστε με αυτό, φροντίστε να διαβάσετε τι είπε ο Arnaud Gurdol, ένας από τους πρώτους μηχανικούς Mac OS X:

Θέλαμε να κάνουμε την εγκατάσταση της εφαρμογής τόσο εύκολη όσο να σύρετε το εικονίδιο της εφαρμογής από κάπου (διακομιστής, εξωτερική μονάδα δίσκου) στη μονάδα δίσκου του υπολογιστή σας. Για να γίνει αυτό, το πακέτο εφαρμογής αποθηκεύει όλες τις πληροφορίες, συμπεριλαμβανομένων των εικονιδίων, της έκδοσης, του τύπου αρχείου που υποβάλλεται σε επεξεργασία, του τύπου των σχημάτων URL που πρέπει να γνωρίζει το σύστημα για να επεξεργαστεί την εφαρμογή. Αυτό περιλαμβάνει επίσης πληροφορίες για «κεντρική αποθήκευση» στη βάση δεδομένων Υπηρεσιών εικονιδίων και Υπηρεσιών εκκίνησης. Για την υποστήριξη της απόδοσης, οι εφαρμογές «ανακαλύπτονται» σε πολλά «γνωστά» σημεία: στους καταλόγους εφαρμογών συστήματος και χρήστη και σε ορισμένους άλλους αυτόματα εάν ο χρήστης πλοηγηθεί στο Finder στον κατάλογο που περιέχει την εφαρμογή. Στην πράξη αυτό λειτούργησε πολύ καλά.

https://youtu.be/qQsnqWJ8D2c
Apple WWDC 2000 session 144 - Mac OS X: εφαρμογές συσκευασίας και εκτύπωση εγγράφων.

Δεν υπάρχει τίποτα σαν αυτήν την υποδομή σε επιτραπέζιους υπολογιστές Linux, επομένως αναζητούμε λύσεις γύρω από τους δομικούς περιορισμούς στο έργο AppImage.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Έρχεται ο Χαϊκού στη διάσωση;

Και κάτι ακόμα: οι πλατφόρμες Linux ως βάση των περιβαλλόντων επιφάνειας εργασίας τείνουν να είναι τόσο υποκαθορισμένες που πολλά πράγματα που είναι αρκετά απλά σε ένα συνεπές σύστημα full-stack είναι απογοητευτικά κατακερματισμένα και πολύπλοκα στο Linux. Αφιέρωσα μια ολόκληρη αναφορά σε ζητήματα που σχετίζονται με την πλατφόρμα Linux για επιτραπέζια περιβάλλοντα (γνώστες προγραμματιστές επιβεβαίωσαν ότι όλα θα παραμείνουν έτσι για πολύ καιρό).

Η αναφορά μου για τα προβλήματα των περιβαλλόντων επιτραπέζιων υπολογιστών Linux το 2018

Ακόμη και ο Linus Torvalds παραδέχτηκε ότι ο κατακερματισμός ήταν ο λόγος που η ιδέα του χώρου εργασίας απέτυχε.

Χαίρομαι που βλέπω το Haiku!

Το χαϊκού τα κάνει όλα εκπληκτικά απλά

Ενώ η αφελής προσέγγιση για τη "μεταφορά" του AppImage στο Haiku είναι απλώς να προσπαθήσουμε να δημιουργήσουμε (κυρίως runtime.c και service) τα στοιχεία του (κάτι που μπορεί να είναι ακόμη δυνατό!), αυτό δεν θα προσφέρει πολλά οφέλη στο Haiku. Γιατί στην πραγματικότητα, τα περισσότερα από αυτά τα προβλήματα λύνονται στο Haiku και είναι εννοιολογικά ορθά. Το Haiku παρέχει ακριβώς τα δομικά στοιχεία της υποδομής του συστήματος που έψαχνα σε περιβάλλοντα επιτραπέζιου υπολογιστή Linux για τόσο καιρό και δεν μπορούσα να πιστέψω ότι δεν υπήρχαν. Και συγκεκριμένα:

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Είτε το πιστεύετε είτε όχι, αυτό είναι κάτι που πολλοί χρήστες Linux δεν μπορούν να ξεπεράσουν. Στο Haiku όλα γίνονται αυτόματα!

  • Τα αρχεία ELF που δεν έχουν bit εκτελέσιμου αποκτούν αυτόματα όταν κάνετε διπλό κλικ στη διαχείριση αρχείων.
  • Οι εφαρμογές μπορούν να έχουν ενσωματωμένους πόρους, όπως εικονίδια, που εμφανίζονται στη διαχείριση αρχείων. Δεν χρειάζεται να αντιγράψετε μια δέσμη εικόνων σε ειδικούς καταλόγους με εικονίδια και επομένως δεν χρειάζεται να τις καθαρίσετε μετά τη διαγραφή ή τη μετακίνηση της εφαρμογής.
  • Υπάρχει μια βάση δεδομένων για τη σύνδεση εφαρμογών με έγγραφα, δεν χρειάζεται να αντιγράψετε αρχεία για αυτό.
  • Στον κατάλογο lib/ δίπλα στο εκτελέσιμο αρχείο, οι βιβλιοθήκες αναζητούνται από προεπιλογή.
  • Δεν υπάρχουν πολυάριθμες διανομές και περιβάλλοντα επιφάνειας εργασίας· ό,τι λειτουργεί, λειτουργεί παντού.
  • Δεν υπάρχει ξεχωριστή λειτουργική μονάδα για εκτέλεση που να διαφέρει από τον κατάλογο Εφαρμογές.
  • Οι εφαρμογές δεν έχουν ενσωματωμένες απόλυτες διαδρομές προς τους πόρους τους· έχουν ειδικές λειτουργίες για τον προσδιορισμό της θέσης κατά το χρόνο εκτέλεσης.
  • Η ιδέα των εικόνων συμπιεσμένου συστήματος αρχείων έχει εισαχθεί: αυτό είναι οποιοδήποτε πακέτο hpkg. Όλα είναι προσαρτημένα από τον πυρήνα.
  • Κάθε αρχείο ανοίγεται από την εφαρμογή που το δημιούργησε, εκτός εάν ορίζετε ρητά διαφορετικά. Πόσο κουλ είναι αυτό!

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Δύο αρχεία png. Σημειώστε τα διαφορετικά εικονίδια που υποδεικνύουν ότι θα ανοίξουν από διαφορετικές εφαρμογές όταν κάνετε διπλό κλικ. Σημειώστε επίσης το αναπτυσσόμενο μενού "Άνοιγμα με:" όπου ο χρήστης μπορεί να επιλέξει μια μεμονωμένη εφαρμογή. Πόσο απλό!

Φαίνεται ότι πολλά από τα δεκανίκια και τις λύσεις που απαιτούνται από το AppImage στο Linux γίνονται περιττά στο Haiku, το οποίο έχει στον πυρήνα του την απλότητα και την πολυπλοκότητα που το κάνει να χειρίζεται τις περισσότερες από τις ανάγκες μας.

Χρειάζεται τελικά το Haiku πακέτα εφαρμογών;

Αυτό οδηγεί σε ένα μεγάλο ερώτημα. Αν ήταν μια τάξη μεγέθους ευκολότερη η δημιουργία ενός συστήματος όπως το AppImage στο Haiku παρά στο Linux, θα άξιζε να το κάνετε; Ή μήπως το Haiku, με το σύστημα πακέτων hpkg, έχει ουσιαστικά εξαλείψει την ανάγκη ανάπτυξης μιας τέτοιας ιδέας; Λοιπόν, για να απαντήσουμε, πρέπει να δούμε το κίνητρο πίσω από την ύπαρξη του AppImages.

Η οπτική γωνία του χρήστη

Ας δούμε τον τελικό μας χρήστη:

  • Θέλω να εγκαταστήσω μια εφαρμογή χωρίς να ζητήσω κωδικό πρόσβασης διαχειριστή (root). Δεν υπάρχει η έννοια του διαχειριστή στο Haiku, ο χρήστης έχει τον πλήρη έλεγχο καθώς είναι ένα προσωπικό σύστημα! (Καταρχήν, μπορείτε να το φανταστείτε σε λειτουργία πολλών παικτών, ελπίζω οι προγραμματιστές να το κρατήσουν απλό)
  • Θέλω να έχω τις πιο πρόσφατες και καλύτερες εκδόσεις εφαρμογών, χωρίς να περιμένω να εμφανιστούν στη διανομή μου (τις περισσότερες φορές αυτό σημαίνει "ποτέ", τουλάχιστον εκτός αν ενημερώσω ολόκληρο το λειτουργικό σύστημα). Στο Haiku αυτό «λύνεται» με κυμαινόμενες κυκλοφορίες. Αυτό σημαίνει ότι είναι δυνατό να αποκτήσετε τις πιο πρόσφατες και καλύτερες εκδόσεις εφαρμογών, αλλά για να το κάνετε αυτό θα πρέπει να ενημερώνετε συνεχώς το υπόλοιπο σύστημα, μετατρέποντάς το ουσιαστικά σε "κινούμενο στόχο".
  • Θέλω πολλές εκδόσεις της ίδιας εφαρμογής δίπλα-δίπλα, καθώς δεν υπάρχει τρόπος να γνωρίζω τι χάλασε στην πιο πρόσφατη έκδοση ή, ας πούμε, εγώ, ως προγραμματιστής ιστού, πρέπει να δοκιμάσω την εργασία μου σε διαφορετικές εκδόσεις του προγράμματος περιήγησης. Το Haiku λύνει το πρώτο πρόβλημα, αλλά όχι το δεύτερο. Οι ενημερώσεις επαναφέρονται, αλλά μόνο για ολόκληρο το σύστημα· είναι αδύνατο (από όσο γνωρίζω) να εκτελεστούν, για παράδειγμα, πολλές εκδόσεις του WebPositive ή του LibreOffice ταυτόχρονα.

Ένας από τους προγραμματιστές γράφει:

Ουσιαστικά η λογική είναι η εξής: η περίπτωση χρήσης είναι τόσο σπάνια που η βελτιστοποίηση για αυτήν δεν έχει νόημα. Η αντιμετώπιση του ως ειδική περίπτωση στα HaikuPorts φαίνεται κάτι παραπάνω από αποδεκτή.

  • Πρέπει να κρατήσω τις εφαρμογές εκεί που μου αρέσουν, όχι στη μονάδα εκκίνησης. Συχνά εξαντλείται ο χώρος στο δίσκο, επομένως πρέπει να συνδέσω μια εξωτερική μονάδα δίσκου ή έναν κατάλογο δικτύου για να αποθηκεύσω εφαρμογές (όλες τις εκδόσεις που έχω κατεβάσει). Εάν συνδέσω μια τέτοια μονάδα δίσκου, χρειάζομαι την εκκίνηση εφαρμογών με διπλό κλικ. Το Haiku αποθηκεύει παλιές εκδόσεις πακέτων, αλλά δεν ξέρω πώς να τις μετακινήσω σε μια εξωτερική μονάδα δίσκου ή πώς να εκκινήσω εφαρμογές από εκεί αργότερα.

Σχόλιο προγραμματιστή:

Τεχνικά, αυτό είναι ήδη δυνατό με την εντολή mount. Φυσικά, θα φτιάξουμε ένα GUI για αυτό μόλις έχουμε αρκετούς ενδιαφερόμενους χρήστες.

  • Δεν χρειάζομαι εκατομμύρια αρχεία διάσπαρτα στο σύστημα αρχείων που δεν μπορώ να διαχειριστώ χειροκίνητα. Θέλω ένα αρχείο ανά εφαρμογή που μπορώ εύκολα να κατεβάσω, να μετακινήσω, να διαγράψω. Στο Haiku αυτό το πρόβλημα λύνεται χρησιμοποιώντας πακέτα .hpkg, που μεταφέρουν, για παράδειγμα, python, από χιλιάδες αρχεία σε ένα. Αλλά αν υπάρχει, για παράδειγμα, Scribus που χρησιμοποιεί python, τότε πρέπει να αντιμετωπίσω τουλάχιστον δύο αρχεία. Και πρέπει να φροντίσω να κρατήσω εκδόσεις τους που συνεργάζονται μεταξύ τους.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Πολλαπλές εκδόσεις του AppImages που τρέχουν δίπλα-δίπλα στο ίδιο Linux

Η προοπτική ενός προγραμματιστή εφαρμογών

Ας δούμε από τη σκοπιά ενός προγραμματιστή εφαρμογών:

  • Θέλω να ελέγξω ολόκληρη την εμπειρία χρήστη. Δεν θέλω να βασίζομαι σε ένα λειτουργικό σύστημα για να μου πει πότε και πώς πρέπει να κυκλοφορήσω εφαρμογές. Το Haiku επιτρέπει στους προγραμματιστές να εργάζονται με τα δικά τους αποθετήρια hpkg, αλλά αυτό σημαίνει ότι οι χρήστες θα πρέπει να τα ρυθμίσουν χειροκίνητα, γεγονός που καθιστά την ιδέα "λιγότερο ελκυστική".
  • Έχω μια σελίδα λήψης στον ιστότοπό μου όπου διανέμω .exe για Windows, .dmg για Mac και .AppImage για Linux. Ή μήπως θέλω να δημιουργήσω έσοδα από την πρόσβαση σε αυτήν τη σελίδα, όλα είναι δυνατά; Τι να βάλω εκεί για χαϊκού; Το αρχείο είναι αρκετό .hpkg με εξαρτήσεις μόνο από HaikuPorts
  • Το λογισμικό μου απαιτεί συγκεκριμένες εκδόσεις άλλου λογισμικού. Για παράδειγμα, είναι γνωστό ότι το Krita απαιτεί μια ενημερωμένη έκδοση του Qt ή το Qt που είναι βελτιστοποιημένο σε μια συγκεκριμένη έκδοση του Krita, τουλάχιστον έως ότου οι ενημερώσεις κώδικα επανατοποθετηθούν στο Qt. Μπορείτε να συσκευάσετε το δικό σας Qt για την εφαρμογή σας σε πακέτο .hpkg, αλλά πιθανότατα αυτό δεν είναι ευπρόσδεκτο.

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Τακτική σελίδα λήψης εφαρμογής. Τι να δημοσιεύσω εδώ για το Haiku;

Πακέτα Will (υπάρχουν ως κατάλογοι εφαρμογών όπως το AppDir ή .app σε στυλ Apple) ή/και εικόνες (με τη μορφή πολύ τροποποιημένων AppImages ή .dmg από την Apple) εφαρμογές μια χρήσιμη προσθήκη στο περιβάλλον επιφάνειας εργασίας Haiku; Ή μήπως θα αραιώσει την όλη εικόνα και θα οδηγήσει σε κατακερματισμό, και επομένως θα προσθέσει πολυπλοκότητα; Είμαι διχασμένος: από τη μια πλευρά, η ομορφιά και η κομψότητα του χαϊκού βασίζεται στο γεγονός ότι συνήθως υπάρχει ένας τρόπος να κάνεις κάτι, παρά πολλοί. Από την άλλη πλευρά, το μεγαλύτερο μέρος της υποδομής για καταλόγους ή/και σειρές εφαρμογών είναι ήδη σε ισχύ, επομένως το σύστημα φωνάζει για το υπόλοιπο λίγα τοις εκατό να μπει στη θέση του.

Σύμφωνα με τον προγραμματιστή κύριος. παφλασμός

Στο Linux (καταλόγους και κιτ εφαρμογών, - περίπου. μεταφράστης) είναι πιθανότατα μια τεχνική λύση σε συστημικά προβλήματα. Στο Haiku προτιμάμε να επιλύουμε απλά προβλήματα συστήματος.

Τι νομίζετε;

Πριν απαντήσεις...

Περιμένετε, ας κάνουμε έναν γρήγορο έλεγχο πραγματικότητας: στην πραγματικότητα καταλόγους εφαρμογών - ήδη μέρος του Haiku:

Κάτι άλλο: Πακέτα εφαρμογών Haiku;
Οι κατάλογοι εφαρμογών υπάρχουν ήδη στο Haiku, αλλά δεν υποστηρίζονται ακόμη στη διαχείριση αρχείων

Απλώς δεν υποστηρίζονται τόσο καλά όσο, για παράδειγμα, το Macintosh Finder. Πόσο ωραίο θα ήταν αν ο κατάλογος QtCreator είχε ένα όνομα και ένα εικονίδιο "QtCreator" στην επάνω αριστερή γωνία, εκκινώντας την εφαρμογή όταν κάνετε διπλό κλικ;

Λίγο νωρίτερα εγώ ήδη ερωτηθείς:

Είστε βέβαιοι ότι μπορείτε να εκτελέσετε τις εφαρμογές δεκαετιών σας σήμερα όταν όλα τα καταστήματα εφαρμογών και τα αποθετήρια διανομής έχουν ξεχάσει αυτές και τις εξαρτήσεις τους; Είστε σίγουροι ότι θα εξακολουθείτε να έχετε πρόσβαση στην τρέχουσα εργασία σας στο μέλλον;

Υπάρχει ήδη απάντηση από το Haiku ή μπορούν να βοηθήσουν εδώ οι κατάλογοι και τα πακέτα εφαρμογών; Νομίζω ότι μπορούν.

Σύμφωνα με τον κ. waddlesplash:

Ναι, έχουμε την απάντηση στην ερώτηση: απλώς θα υποστηρίξουμε αυτές τις εφαρμογές για όσο διάστημα χρειαστεί, έως ότου κάποιος μπορεί να διαβάσει τις μορφές αρχείων τους με τον σωστό τρόπο ή να παρέχει λειτουργίες ένας προς έναν. Η δέσμευσή μας να υποστηρίζουμε εφαρμογές BeOS R5 στο Haiku είναι απόδειξη αυτού...

РС, Рѕ С, РѕС ‡ РЅРѕ!

Ποια πορεία δράσης πρέπει να ακολουθήσει το Haiku;

Μπορώ να φανταστώ την ειρηνική συνύπαρξη hpkg, καταλόγων και εικόνων εφαρμογών:

  • Χρήσεις λογισμικού συστήματος .hpkg
  • Για το λογισμικό που χρησιμοποιείται πιο συχνά (ειδικά εκείνα που πρέπει να προγραμματίσουν κυλιόμενες εκδόσεις), χρησιμοποιήστε .hpkg (περίπου το 80% όλων των περιπτώσεων)
  • Κάποια εγκατεστημένα μέσω .hpkg, οι εφαρμογές θα επωφεληθούν από τη μετακίνηση σε μια υποδομή καταλόγου εφαρμογών (π.χ. QtCreator): θα διανεμηθούν ως .hpkg, όπως και πριν.

κύριος. Ο waddlesplash γράφει:

Εάν το μόνο που χρειάζεστε είναι να προβάλετε εφαρμογές /system/apps, αντί να κάνουμε τους καταλόγους στο Deskbar πιο διαχειρίσιμους για τους χρήστες, αφού /system/apps δεν προορίζεται να ανοίγει και να προβάλλεται τακτικά από χρήστες (σε αντίθεση με το MacOS). Για τέτοιες καταστάσεις, το Haiku έχει διαφορετικό παράδειγμα, αλλά αυτή η επιλογή είναι, θεωρητικά, αποδεκτή.

  • Το Haiku λαμβάνει την υποδομή για εκτέλεση εικόνων εφαρμογών, νυχτερινές, συνεχείς και δοκιμαστικές εκδόσεις λογισμικού, καθώς και για περιπτώσεις που ο χρήστης θέλει να το «παγώσει εγκαίρως», για ιδιωτικό και εσωτερικό λογισμικό και άλλες περιπτώσεις ειδικής χρήσης (περίπου 20% από όλους). Αυτές οι εικόνες περιέχουν τα απαραίτητα αρχεία για την εκτέλεση της εφαρμογής .hpkg, προσαρτάται από το σύστημα και αφού ολοκληρωθεί η εφαρμογή - αποπροσαρτάται. (Ίσως ένας διαχειριστής αρχείων θα μπορούσε να βάλει αρχεία .hpkg σε εικόνες εφαρμογών, αυτόματα ή κατόπιν αιτήματος του χρήστη - όπως όταν σύρετε μια εφαρμογή σε έναν κατάλογο δικτύου ή μια εξωτερική μονάδα δίσκου. Είναι απλά ένα τραγούδι! Ή μάλλον, ποίηση - χαϊκού.) Από την άλλη πλευρά, ο χρήστης μπορεί να θέλει να εγκαταστήσει τα περιεχόμενα της εικόνας με τη μορφή αρχείων.hpkg, μετά την οποία θα ενημερωθούν και θα υποβληθούν σε επεξεργασία με τον ίδιο τρόπο όπως αν είχαν εγκατασταθεί μέσω του HaikuDepot... Πρέπει να κάνουμε καταιγισμό ιδεών).

Παράθεση από τον κ. waddlesplash:

Η εκτέλεση εφαρμογών από εξωτερικές μονάδες δίσκου ή καταλόγους δικτύου μπορεί ενδεχομένως να είναι χρήσιμη. Και η προσθήκη της δυνατότητας διαμόρφωσης περισσότερων "ζωνών" για το pkgman θα ήταν σίγουρα ένα ωραίο χαρακτηριστικό.

Ένα τέτοιο σύστημα θα εκμεταλλευόταν hpkg, καταλόγους και εικόνες εφαρμογών. Είναι καλοί ατομικά, αλλά μαζί θα γίνουν ανίκητοι.

Συμπέρασμα

Το Haiku διαθέτει ένα πλαίσιο που παρέχει μια απλή και εξελιγμένη εμπειρία χρήστη για τον υπολογιστή και υπερβαίνει κατά πολύ αυτό που παρέχεται συνήθως για τον υπολογιστή Linux. Σύστημα πακέτων .hpkg είναι ένα τέτοιο παράδειγμα, αλλά το υπόλοιπο σύστημα είναι επίσης εμποτισμένο με πολυπλοκότητα. Ωστόσο, το Haiku θα επωφεληθεί από την κατάλληλη υποστήριξη καταλόγου και εικόνας εφαρμογών. Το πώς να γίνει καλύτερα αυτό αξίζει να συζητηθεί με ανθρώπους που γνωρίζουν το Haiku, τη φιλοσοφία και την αρχιτεκτονική του πολύ καλύτερα από εμένα. Άλλωστε, χρησιμοποιώ το Haiku για λίγο περισσότερο από μια εβδομάδα. Ωστόσο, πιστεύω ότι οι σχεδιαστές, οι προγραμματιστές και οι αρχιτέκτονες του Haiku θα επωφεληθούν από αυτή τη νέα προοπτική. Τουλάχιστον, θα ήμουν ευτυχής να είμαι ο «πυγμαχικός σύντροφός» τους. Έχω πάνω από 10 χρόνια πρακτικής εμπειρίας με καταλόγους και πακέτα εφαρμογών Linux και θα ήθελα να βρω τη χρήση τους στο Haiku, για το οποίο πιστεύω ότι ταιριάζουν απόλυτα. Οι πιθανές λύσεις που έχω προτείνει δεν είναι σε καμία περίπτωση οι μόνες σωστές για τα προβλήματα που περιέγραψα, και αν η ομάδα Χαϊκού αποφασίσει να βρει άλλες, πιο κομψές, είμαι υπέρ. Βασικά, σκέφτομαι ήδη την ιδέα του πώς να φτιάξω ένα σύστημα hpkg ακόμα πιο εκπληκτικό χωρίς να αλλάξει ο τρόπος που λειτουργεί. Αποδεικνύεται ότι η ομάδα Haiku σκεφτόταν τα πακέτα εφαρμογών για μεγάλο χρονικό διάστημα όταν εφάρμοζε ένα σύστημα διαχείρισης πακέτων, αλλά δυστυχώς (νομίζω) η ιδέα έγινε «παρωχημένη». Μήπως ήρθε η ώρα να το αναβιώσει;

Δοκιμάστε το μόνοι σας! Εξάλλου, το έργο Haiku παρέχει εικόνες για εκκίνηση από DVD ή USB, που δημιουργούνται καθημερινά.
Έχετε ερωτήσεις; Σας προσκαλούμε στο ρωσόφωνο κανάλι τηλεγραφήματος.

Επισκόπηση σφάλματος: Πώς να πυροβολήσετε τον εαυτό σας στο πόδι σε C και C++. Συλλογή συνταγών Haiku OS

Από ο συγγραφέας μετάφραση: αυτό είναι το όγδοο και τελευταίο άρθρο της σειράς για το Haiku.

Λίστα άρθρων: Πρώτα Η δεύτερη Третья Τέταρτον Πέμπτο Έκτη Εβδομος

Μόνο εγγεγραμμένοι χρήστες μπορούν να συμμετάσχουν στην έρευνα. Συνδεθείτε, Σας παρακαλούμε.

Έχει νόημα η μεταφορά του συστήματος hpkg σε Linux;

  • Ναί

  • Όχι

  • Έχει ήδη εφαρμοστεί, θα γράψω στα σχόλια

Ψήφισαν 20 χρήστες. 5 χρήστες απείχαν.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο