ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ

ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ

ಟಿಎಲ್; ಡಿಆರ್: ಹೊಸಬರು ಮೊದಲ ಬಾರಿಗೆ ಹೈಕು ನೋಡುತ್ತಾರೆ, ಪ್ರಪಂಚದ ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಾರೆ. Linux.

ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ
ಹೈಕು ಪ್ರೋಗ್ರಾಂನ ನನ್ನ ಮೊದಲ ಪೋರ್ಟ್, ಅದರ hpkg ಸ್ವರೂಪದಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾಗಿದೆ.

ಇತ್ತೀಚೆಗೆ ನಾನು ಹೈಕುವನ್ನು ಕಂಡುಹಿಡಿದೆ, ಅದು ಆಶ್ಚರ್ಯಕರವಾಗಿ ಉತ್ತಮ ಪಿಸಿ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಆಗಿತ್ತು.
ಇಂದು ನಾನು ಈ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗೆ ಹೊಸ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಹೇಗೆ ಪೋರ್ಟ್ ಮಾಡುವುದು ಎಂದು ಕಲಿಯುತ್ತೇನೆ. ಡೆವಲಪರ್ ದೃಷ್ಟಿಕೋನದಿಂದ ಹೈಕುಗೆ ಬದಲಾಯಿಸಿದ ನನ್ನ ಮೊದಲ ಅನುಭವವನ್ನು ವಿವರಿಸುವುದು ಮುಖ್ಯ ಗಮನ. Linuxನಾನು ಹೈಕು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ ಒಂದು ವಾರವೂ ಆಗಿಲ್ಲವಾದ್ದರಿಂದ, ದಾರಿಯುದ್ದಕ್ಕೂ ಮಾಡಿದ ಯಾವುದೇ ಸಣ್ಣ ತಪ್ಪುಗಳಿಗೆ ನಾನು ಕ್ಷಮೆಯಾಚಿಸುತ್ತೇನೆ.

ನಾನು ಮೂರು ಗುರಿಗಳನ್ನು ಸಾಧಿಸಲು ಬಯಸುತ್ತೇನೆ:

  • ಸರಳ CLI ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪೋರ್ಟ್ ಮಾಡಿ
  • Qt ಗೆ ಪೋರ್ಟ್ GUI ಅಪ್ಲಿಕೇಶನ್
  • ನಂತರ ಅವುಗಳನ್ನು hpkg ಸ್ವರೂಪದಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಿ (ನಾನು ಇನ್ನೂ ಹೈಕುವಿಗಾಗಿ AppDir ಮತ್ತು AppImage ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವ ಬಗ್ಗೆ ಯೋಚಿಸುತ್ತಿರುವುದರಿಂದ...)

ಪ್ರಾರಂಭಿಸೋಣ. ವಿಭಾಗಗಳಲ್ಲಿ ದಸ್ತಾವೇಜನ್ನು и ಅಭಿವೃದ್ಧಿಹಾಗೆಯೇ ವಿಕಿ ಹೈಕುಪೋರ್ಟ್ಸ್‌ನಿಂದ ನಾನು ಸರಿಯಾದ ದಿಕ್ಕನ್ನು ಕಂಡುಕೊಂಡೆ. ಆನ್‌ಲೈನ್ ಪಿಡಿಎಫ್ ಪುಸ್ತಕವೂ ಇದೆ. ಬಿಇಒಎಸ್: ಯುನಿಕ್ಸ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪೋರ್ಟ್ ಮಾಡುವುದು.
467 ಪುಟಗಳು — ಮತ್ತು ಇದು 1997 ರದ್ದು! ಒಳಗೆ ನೋಡುವುದು ಭಯಾನಕವಾಗಿದೆ, ಆದರೆ ನಾನು ಉತ್ತಮವಾದದ್ದನ್ನು ಆಶಿಸುತ್ತೇನೆ. ಡೆವಲಪರ್‌ನ ಮಾತುಗಳು ಪ್ರೋತ್ಸಾಹದಾಯಕವಾಗಿವೆ: "ಇದು ಬಹಳ ಸಮಯ ತೆಗೆದುಕೊಂಡಿತು, ಏಕೆಂದರೆ BeOS POSIX-ಹೊಂದಾಣಿಕೆಯಾಗಿರಲಿಲ್ಲ", ಆದರೆ ಹೈಕು "ಹೆಚ್ಚಾಗಿ" ಈಗಾಗಲೇ ಇದೆ.

ಸರಳ CLI ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪೋರ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ

ಮೊದಲ ಆಲೋಚನೆ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಪೋರ್ಟ್ ಮಾಡುವುದು. avrdude, ಆದರೆ, ಅದು ಬದಲಾದಂತೆ, ಇದು ಈಗಾಗಲೇ ಆಗಿದೆ ಮಾಡಲಾಗಿದೆ ಬಹಳ ಹಿಂದೆಯೇ.

ಮೊದಲ ಪ್ರಯತ್ನ: ನೋಡಲು ಏನೂ ಇಲ್ಲ

ನನಗೆ ಇನ್ನೂ ಅರ್ಥವಾಗದ ವಿಷಯವೆಂದರೆ ಅದು ಈಗಾಗಲೇ 10 ವರ್ಷಗಳಿಗೂ ಹೆಚ್ಚು ಕಾಲ, ಅರ್ಜಿಗಳನ್ನು ಹೈಕುಗೆ ಪೋರ್ಟ್ ಮಾಡಲಾಗಿದೆ. - OS ಸ್ವತಃ ಇನ್ನೂ ಆವೃತ್ತಿ 1.0 ಆಗಿಲ್ಲ ಎಂಬ ವಾಸ್ತವದ ಹೊರತಾಗಿಯೂ.

ಎರಡನೇ ಪ್ರಯತ್ನ: ಪುನಃ ಬರೆಯಬೇಕಾಗಿದೆ

ಹಾಗಾಗಿ ನಾನು ಬಳಸುತ್ತೇನೆ ಪಿಟಚ್-770, ಲೇಬಲ್‌ಗಳನ್ನು ಮುದ್ರಿಸಲು ನಾನು ಬಳಸುವ ಬ್ರದರ್ ಪಿ-ಟಚ್ 770 ಪ್ರಿಂಟರ್ ಅನ್ನು ನಿಯಂತ್ರಿಸಲು CLI.
ನಾನು ಅದರ ಮೇಲೆ ವಿವಿಧ ಲೇಬಲ್‌ಗಳನ್ನು ಮುದ್ರಿಸುತ್ತೇನೆ, ಮತ್ತು ನೀವು ಅದನ್ನು ಹಿಂದಿನ ಲೇಖನದಲ್ಲಿ ಈಗಾಗಲೇ ನೋಡಿರಬಹುದು. ಸ್ವಲ್ಪ ಮೊದಲು ನಾನು ಪೈಥಾನ್‌ನಲ್ಲಿ GUI ಹೊಂದಿರುವ ಸಣ್ಣ ಹೊದಿಕೆ ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಬರೆದಿದ್ದೆ (ಅದು Gtk+ ನಲ್ಲಿರುವುದರಿಂದ, ನಾನು ಅದನ್ನು ಪುನಃ ಬರೆಯಬೇಕಾಗುತ್ತದೆ, ಮತ್ತು ಇದು ಅಧ್ಯಯನ ಮಾಡಲು ಒಳ್ಳೆಯ ಕಾರಣವಾಗಿದೆ).

ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ
ಬ್ರದರ್ ಪಿ-ಟಚ್ 770 ಲೇಬಲ್ ಪ್ರಿಂಟರ್. ಇದು ಹೈಕು ಅಡಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆಯೇ?

ಹೈಕು ಪ್ಯಾಕೇಜ್ ಮ್ಯಾನೇಜರ್ ಲೈಬ್ರರಿಗಳು ಮತ್ತು ಆಜ್ಞೆಗಳ ಬಗ್ಗೆ ತಿಳಿದಿದ್ದಾರೆ, ಆದ್ದರಿಂದ ನಾನು ರನ್ ಮಾಡುವಾಗ "libintl ಸಿಗುತ್ತಿಲ್ಲ" ಎಂಬ ಸಂದೇಶ ಬಂದರೆ configure - ನಾನು ಅದನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತೇನೆ. pkgman install devel:libintl ಮತ್ತು ಅಗತ್ಯವಿರುವ ಪ್ಯಾಕೇಜ್ ಸಿಗುತ್ತದೆ. ಅದೇ ರೀತಿ pkgman install cmd:rsyncಸರಿ, ಮತ್ತು ಹೀಗೆ.

ಅದು ಕೆಲಸ ಮಾಡದಿದ್ದಾಗ ಹೊರತುಪಡಿಸಿ:

/Haiku/home> git clone https://github.com/probonopd/ptouch-770
Cloning into 'ptouch-770'...
remote: Enumerating objects: 134, done.
remote: Total 134 (delta 0), reused 0 (delta 0), pack-reused 134
Receiving objects: 100% (134/134), 98.91 KiB | 637.00 KiB/s, done.
Resolving deltas: 100% (71/71), done./Haiku/home> cd ptouch-770//Haiku/home/ptouch-770> make
gcc -Wall -O2 -c -o ptouch-770-write.o ptouch-770-write.c
ptouch-770-write.c:28:10: fatal error: libudev.h: No such file or directory
 #include <libudev.h>
          ^~~~~~~~~~~
compilation terminated.
Makefile:16: recipe for target 'ptouch-770-write.o' failed
make: *** [ptouch-770-write.o] Error 1/Haiku/home/ptouch-770> pkgman install devel:libudev
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku...done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts...done.
*** Failed to find a match for "devel:libudev": Name not found/Haiku/home/ptouch-770> pkgman install devel:udev
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku...done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts...done.
*** Failed to find a match for "devel:udev": Name not found

ಬಹುಶಃ udev ತುಂಬಾ Linux-y ಆಗಿರಬಹುದು, ಆದ್ದರಿಂದ ಅದು ಹೈಕುಗೆ ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲ. ಅಂದರೆ ನಾನು ಕಂಪೈಲ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರುವ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಸಂಪಾದಿಸಬೇಕಾಗುತ್ತದೆ.
ಓಹ್, ನೀವು ನಿಮ್ಮ ತಲೆಯ ಮೇಲೆ ಹಾರಲು ಸಾಧ್ಯವಿಲ್ಲ, ಮತ್ತು ಎಲ್ಲಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕೆಂದು ನನಗೆ ತಿಳಿದಿಲ್ಲ.

ಮೂರನೇ ಪ್ರಯತ್ನ

ಇದ್ದರೆ ಚೆನ್ನಾಗಿರುತ್ತಿತ್ತು tmate ಹೈಕುಗಾಗಿ, ಏನಾದರೂ ತಪ್ಪಾದಲ್ಲಿ ಹೈಕು ಡೆವಲಪರ್‌ಗಳು ನನ್ನ ಟರ್ಮಿನಲ್ ಸೆಷನ್‌ಗೆ ಸಂಪರ್ಕ ಸಾಧಿಸಲು ನಾನು ಅನುಮತಿಸುತ್ತೇನೆ. ಸೂಚನೆಗಳು ತುಂಬಾ ಸರಳವಾಗಿದೆ:

./autogen.sh
./configure
make
make install

ಚೆನ್ನಾಗಿ ಕಾಣುತ್ತಿದೆ, ಹಾಗಾದರೆ ಹೈಕುವಿನಲ್ಲಿ ಯಾಕೆ ಪ್ರಯತ್ನಿಸಬಾರದು?

/Haiku/home> git clone https://github.com/tmate-io/tmate/Haiku/home> cd tmate//Haiku/home/tmate> ./autogen.sh
(...)/Haiku/home/tmate> ./configure
(...)
checking for libevent... no
checking for library containing event_init... no
configure: error: "libevent not found"/Haiku/home/tmate> pkgman install devel:libevent
(...)
The following changes will be made:
  in system:
    install package libevent21-2.1.8-2 from repository HaikuPorts
    install package libevent21_devel-2.1.8-2 from repository HaikuPorts
Continue? [yes/no] (yes) :
100% libevent21-2.1.8-2-x86_64.hpkg [965.22 KiB]
(...)
[system] Done.checking for ncurses... no
checking for library containing setupterm... no
configure: error: "curses not found"/Haiku/home/tmate> pkgman install devel:libcurses
(...)
*** Failed to find a match for "devel:libcurses": Name not found/Haiku/home/tmate> pkgman install devel:curses
(...)
*** Failed to find a match for "devel:curses": Name not found

ಈ ಹಂತದಲ್ಲಿ ನಾನು ಹೈಕು ಡಿಪೋ ತೆರೆದು ಹುಡುಕುತ್ತೇನೆ curses.
ಹೆಚ್ಚು ಸಮರ್ಥ ವಿನಂತಿಗಾಗಿ ನನಗೆ ಸುಳಿವು ನೀಡಿದ ಏನೋ ಕಂಡುಬಂದಿದೆ:

/Haiku/home/tmate> pkgman install devel:libncurses
(...)
100% ncurses6_devel-6.1-1-x86_64.hpkg [835.62 KiB]
(...)./configure
(...)
checking for msgpack >= 1.1.0... no
configure: error: "msgpack >= 1.1.0 not found"/Haiku/home/tmate> pkgman install devel:msgpack
(...)
*** Failed to find a match for "devel:msgpack": Name not found/Haiku/home/tmate> pkgman install devel:libmsgpack
(...)
*** Failed to find a match for "devel:libmsgpack": Name not found

ಮತ್ತೆ ಹೈಕು ಡಿಪೋಗೆ ಹೋದೆ ಮತ್ತು ಖಂಡಿತವಾಗಿಯೂ ನಾನು ಅದನ್ನು ಕಂಡುಕೊಂಡೆ. devel:msgpack_c_cpp_develಎಂತಹ ವಿಚಿತ್ರ ಹೆಸರುಗಳು?

/Haiku/home/tmate> pkgman install devel:msgpack_c_cpp_devel
100% repochecksum-1 [65 bytes]
Validating checksum for Haiku...done.
100% repochecksum-1 [64 bytes]
Validating checksum for HaikuPorts...done.
*** Failed to find a match for "devel:msgpack_c_cpp_devel": Name not found# Why is it not finding it? To hell with the "devel:".../Haiku/home/tmate> pkgman install msgpack_c_cpp_devel
(...)
The following changes will be made:
  in system:
    install package msgpack_c_cpp-3.1.1-1 from repository HaikuPorts
    install package msgpack_c_cpp_devel-3.1.1-1 from repository HaikuPorts
Continue? [yes/no] (yes) :
(...)/Haiku/home/tmate> ./configure
(...)
checking for libssh >= 0.8.4... no
configure: error: "libssh >= 0.8.4 not found"/Haiku/home/tmate> pkgman install devel:libssh/Haiku/home/tmate> make
(...)
In file included from /boot/system/develop/headers/msgpack.h:22,
                 from tmate.h:5,
                 from cfg.c:29:
/boot/system/develop/headers/msgpack/vrefbuffer.h:19:8: error: redefinition of struct iovec'
 struct iovec {
        ^~~~~
In file included from tmux.h:27,
                 from cfg.c:28:
/boot/system/develop/headers/posix/sys/uio.h:12:16: note: originally defined here
 typedef struct iovec {
                ^~~~~
Makefile:969: recipe for target 'cfg.o' failed
make: *** [cfg.o] Error 1

ಈ ಹಂತದಲ್ಲಿ, ಹೈಕುವಿನಲ್ಲಿ ಒಂದು ಪ್ರೋಗ್ರಾಂ ಅನ್ನು ಪೋರ್ಟ್ ಮಾಡಲು ಸರಳವಾದ ಪುನರ್ನಿರ್ಮಾಣಕ್ಕಿಂತ ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿನ ಜ್ಞಾನದ ಅಗತ್ಯವಿದೆ ಎಂದು ನಾನು ಅರಿತುಕೊಂಡೆ.
ನಾನು ಸ್ನೇಹಪರ ಹೈಕು ಡೆವಲಪರ್‌ಗಳೊಂದಿಗೆ ಮಾತನಾಡಿದೆ, msgpack ನಲ್ಲಿ ಒಂದು ದೋಷ ಕಂಡುಬಂದಿದೆ, ಮತ್ತು ಕೆಲವು ನಿಮಿಷಗಳ ನಂತರ ನಾನು ಹೈಕುಪೋರ್ಟ್ಸ್‌ನಲ್ಲಿ ಪ್ಯಾಚ್ ಅನ್ನು ನೋಡಿದೆ. ಪ್ಯಾಕೇಜ್ ಹೇಗೆ ಸ್ಥಿರವಾಗಿದೆ ಎಂಬುದನ್ನು ನಾನು ನನ್ನ ಸ್ವಂತ ಕಣ್ಣುಗಳಿಂದ ನೋಡಬಲ್ಲೆ. ಇಲ್ಲಿ ಒಟ್ಟುಗೂಡುತ್ತದೆ (ಬಿಲ್ಡ್‌ಸ್ಲೇವ್ - ವರ್ಚುವಲ್ ಯಂತ್ರಗಳು).

ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ
ಬಿಲ್ಡ್‌ಮಾಸ್ಟರ್‌ನಲ್ಲಿ ಸ್ಥಿರ ಸಂದೇಶ ಪ್ಯಾಕ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು

ಈ ಮಧ್ಯೆ, ನಾನು ಪ್ಯಾಚ್ ಅನ್ನು ಅಪ್‌ಸ್ಟ್ರೀಮ್‌ಗೆ ಕಳುಹಿಸುತ್ತೇನೆ msgpack ಗೆ ಹೈಕು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲು.

ಐದು ನಿಮಿಷಗಳ ನಂತರ, ನವೀಕರಿಸಿದ msgpack ಈಗಾಗಲೇ ಹೈಕುವಿನಲ್ಲಿ ಲಭ್ಯವಿದೆ:

/Haiku/home/tmate> pkgman update
(...)
The following changes will be made:
  in system:
    upgrade package msgpack_c_cpp-3.1.1-1 to 3.2.0-2 from repository HaikuPorts
    upgrade package msgpack_c_cpp_devel-3.1.1-1 to 3.2.0-2 from repository HaikuPorts
Continue? [yes/no] (yes) : y
100% msgpack_c_cpp-3.2.0-2-x86_64.hpkg [13.43 KiB]
(...)
[system] Done.

ಅನಿರೀಕ್ಷಿತವಾಗಿ ಚೆನ್ನಾಗಿತ್ತು. ನಾನು ಹಾಗೆ ಹೇಳಿದ್ದೇನೆಯೇ?!

ಮೂಲ ಸಮಸ್ಯೆಗೆ ಹಿಂತಿರುಗಿ:

/Haiku/home/tmate> make
(...)
In file included from tmux.h:40,
                 from tty.c:32:
compat.h:266: warning: "AT_FDCWD" redefined
 #define AT_FDCWD -100

In file included from tty.c:25:
/boot/system/develop/headers/posix/fcntl.h:62: note: this is the location of the previous definition
 #define AT_FDCWD  (-1)  /* CWD FD for the *at() functions */

tty.c: In function 'tty_init_termios':
tty.c:278:48: error: 'IMAXBEL' undeclared (first use in this function); did you mean 'MAXLABEL'?
  tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|IMAXBEL|ISTRIP);
                                                ^~~~~~~
                                                MAXLABEL
tty.c:278:48: note: each undeclared identifier is reported only once for each function it appears in
Makefile:969: recipe for target 'tty.o' failed
make: *** [tty.o] Error 1

ಈಗ msgpack ತಪ್ಪಿತಸ್ಥರಲ್ಲ ಎಂದು ತೋರುತ್ತದೆ. ನಾನು ಕಾಮೆಂಟ್ ಮಾಡುತ್ತೇನೆ. IMAXLABEL в tty.c ಆದ್ದರಿಂದ:

tio.c_iflag &= ~(IXON|IXOFF|ICRNL|INLCR|IGNCR|/*IMAXBEL|*/ISTRIP);

ಫಲಿತಾಂಶ:

osdep-unknown.c: In function 'osdep_get_cwd':
osdep-unknown.c:32:19: warning: unused parameter 'fd' [-Wunused-parameter]
 osdep_get_cwd(int fd)
               ~~~~^~
make: *** No rule to make target 'compat/forkpty-unknown.c', needed by 'compat/forkpty-unknown.o'.  Stop.

ಸರಿ, ಮತ್ತೆ ಶುರು ಮಾಡೋಣ... ಅಂದಹಾಗೆ:

/Haiku/home/tmate> ./configure | grep -i OPENAT
checking for openat... no

ಶ್ರೀ waddlesplash ಎಲ್ಲಿ ಅಗೆಯಬೇಕೆಂದು ನಿಮಗೆ ಹೇಳುತ್ತದೆ:

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd"
(...)/Haiku/home/tmate> make
(...)
In file included from tmux.h:40,
                 from window.c:31:
compat.h:266: warning: "AT_FDCWD" redefined
 #define AT_FDCWD -100

In file included from window.c:22:
/boot/system/develop/headers/posix/fcntl.h:62: note: this is the location of the previous definition
 #define AT_FDCWD  (-1)  /* CWD FD for the *at() functions */

make: *** No rule to make target 'compat/forkpty-unknown.c', needed by 'compat/forkpty-unknown.o'.  Stop.

ನಾನು ಅದನ್ನು ಇಲ್ಲಿ ಪೋಸ್ಟ್ ಮಾಡಿದ್ದೇನೆ. config.log.

ಹೈಕುದಲ್ಲಿನ ಲಿಬ್ರೆಸಾಲ್ವ್ ಲಿಬ್‌ನೆಟ್‌ವರ್ಕ್‌ನಲ್ಲಿ ಬೇರೇನೋ ಹೊಂದಿದೆ ಎಂದು ನನಗೆ ಹೇಳಲಾಯಿತು. ಸ್ಪಷ್ಟವಾಗಿ, ಕೋಡ್ ಅನ್ನು ಮತ್ತಷ್ಟು ಸಂಪಾದಿಸಬೇಕಾಗಿದೆ. ನಾನು ಅದರ ಬಗ್ಗೆ ಯೋಚಿಸಬೇಕಾಗಿದೆ...

find . -type f -exec sed -i -e 's|lresolv|lnetwork|g'  {} ;

ಶಾಶ್ವತ ಪ್ರಶ್ನೆ: ಏನಾಗುತ್ತಿದೆ?

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd"
(...)/Haiku/home/tmate> make
(...)
# Success!# Let's run it:/Haiku/home/tmate> ./tmate
runtime_loader: /boot/system/lib/libssh.so.4.7.2: Could not resolve symbol '__stack_chk_guard'
resolve symbol "__stack_chk_guard" returned: -2147478780
runtime_loader: /boot/system/lib/libssh.so.4.7.2: Troubles relocating: Symbol not found

ಅದೇ, ಪ್ರೊಫೈಲ್‌ನಲ್ಲಿ ಮಾತ್ರ. ನಾನು ಅದನ್ನು ಗೂಗಲ್‌ನಲ್ಲಿ ಹುಡುಕಿದೆ ಮತ್ತು ಇದು ಸಿಕ್ಕಿತು. ನೀವು ಸೇರಿಸಿದರೆ -lssp "ಕೆಲವೊಮ್ಮೆ" ಸಹಾಯ ಮಾಡುತ್ತದೆ, ನಾನು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ:

/Haiku/home/tmate> ./configure LDFLAGS="-lbsd -lssp"
(...)/Haiku/home/tmate> make
(...)/Haiku/home/tmate> ./tmate

ಅಬ್ಬಾ! ಶುರುವಾಗುತ್ತಿದೆ! ಆದರೆ...

[tmate] ssh.tmate.io lookup failure. Retrying in 2 seconds (non-recoverable failure in name resolution)

ನಾನು ಅದನ್ನು ಡೀಬಗ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತೇನೆ, ಇಲ್ಲಿ ಫೈಲ್ ಮಾಡಿ:

/Haiku/home/tmate> strace -f ./tmate >log 2>&1

"ಕೆಟ್ಟ ಪೋರ್ಟ್ ಐಡಿ" ಈಗಾಗಲೇ ವ್ಯಾಪಾರ ಕಾರ್ಡ್‌ನಂತಿದೆ. ಹೈಕು. ಬಹುಶಃ ಯಾರಿಗಾದರೂ ಏನು ತಪ್ಪಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ಹೇಗೆ ಸರಿಪಡಿಸುವುದು ಎಂಬುದರ ಬಗ್ಗೆ ಕಲ್ಪನೆ ಇರಬಹುದು? ಏನಾದರೂ ಇದ್ದರೆ, ನಾನು ಲೇಖನವನ್ನು ನವೀಕರಿಸುತ್ತೇನೆ. ಲಿಂಕ್ GitHub.

GUI ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು Qt ಗೆ ಪೋರ್ಟ್ ಮಾಡಲಾಗುತ್ತಿದೆ.

ನಾನು ಸರಳವಾದ QML ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಆರಿಸಿಕೊಳ್ಳುತ್ತೇನೆ.

/> cd /Haiku/home//Haiku/home> git clone https://github.com/probonopd/QtQuickApp
/Haiku/home/QtQuickApp> qmake .
/Haiku/home/QtQuickApp> make
/Haiku/home/QtQuickApp> ./QtQuickApp # Works!

ನಿಜವಾಗಿಯೂ ಸರಳ. ಒಂದು ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ ಸಮಯ!

ಹೈಕುಪೋರ್ಟರ್ ಮತ್ತು ಹೈಕುಪೋರ್ಟ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು hpkg ಗೆ ಪ್ಯಾಕೇಜಿಂಗ್ ಮಾಡುವುದು.

ಎಲ್ಲಿಂದ ಪ್ರಾರಂಭಿಸಬೇಕು? ಯಾವುದೇ ಮೂಲಭೂತ ದಾಖಲೆಗಳಿಲ್ಲ, ನಾನು irc.freenode.net ನಲ್ಲಿ #haiku ಚಾನಲ್‌ಗೆ ಹೋಗಿ ಕೇಳುತ್ತೇನೆ:

  • ತಂಡದ package — ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ರಚಿಸಲು ಒಂದು ಕೆಳಮಟ್ಟದ ಮಾರ್ಗ. ಹೆಚ್ಚಿನ ಭಾಗಕ್ಕೆ, "ಸರಿಯಾದ .hpkg ಪ್ಯಾಕೇಜ್ ಆಗಿ ಮಾಡುವುದು" ವಿಭಾಗದಲ್ಲಿ ವಿವರಿಸಿದಂತೆ ಇದಕ್ಕೆ PackageInfo ಮಾತ್ರ ಅಗತ್ಯವಿರುತ್ತದೆ.
  • ನಾನು ಏನಾದರೂ ಮಾಡಬೇಕು. ಅಂತಹ
  • ಬಳಸಬಹುದು hpkg-ಸೃಷ್ಟಿಕರ್ತ (ಇದು ನನಗೆ ಅಪ್ಪಳಿಸುತ್ತದೆ, ದೋಷ ವರದಿ)

ಏನು ಮಾಡಬೇಕೆಂದು ನನಗೆ ತಿಳಿಯುತ್ತಿಲ್ಲ. ಆರಂಭಿಕರಿಗಾಗಿ ನನಗೆ "ಹಲೋ, ವರ್ಲ್ಡ್!" ಶೈಲಿಯ ಟ್ಯುಟೋರಿಯಲ್ ಅಗತ್ಯವಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ, ಸೂಕ್ತವಾಗಿ ಒಂದು ವೀಡಿಯೊ. GNU ಹಲೋ ತರಹದ ಹೈಕುಪೋರ್ಟರ್ ಬಗ್ಗೆ ಸೂಕ್ತ ಪರಿಚಯವಿದ್ದರೆ ಚೆನ್ನಾಗಿರುತ್ತದೆ.

ನಾನು ಈ ಕೆಳಗಿನವುಗಳನ್ನು ಓದಿದ್ದೇನೆ:

haikuporter ಹೈಕುಗಾಗಿ ಸಾಮಾನ್ಯ ಪ್ಯಾಕೇಜಿಂಗ್ ಯೋಜನೆಗಳನ್ನು ರಚಿಸಲು ಒಂದು ಸಾಧನವಾಗಿದೆ. ಇದು ಎಲ್ಲಾ ಪ್ಯಾಕೇಜ್‌ಗಳಿಗೆ ಆಧಾರವಾಗಿ ಹೈಕುಪೋರ್ಟ್ಸ್ ರೆಪೊಸಿಟರಿಯನ್ನು ಬಳಸುತ್ತದೆ. ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ರಚಿಸಲು ಇದು ಹೈಕುಪೋರ್ಟರ್ ಪಾಕವಿಧಾನಗಳನ್ನು ಬಳಸುತ್ತದೆ.

ಹೆಚ್ಚುವರಿಯಾಗಿ, ನಾನು ಕಲಿಯುತ್ತೇನೆ:

ಹೈಕುಪೋರ್ಟ್ಸ್ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಪಾಕವಿಧಾನಗಳನ್ನು ಇಡುವ ಅಗತ್ಯವಿಲ್ಲ. ನೀವು ಇನ್ನೊಂದು ರೆಪೊಸಿಟರಿಯನ್ನು ರಚಿಸಬಹುದು, ಅದರಲ್ಲಿ ಪಾಕವಿಧಾನಗಳನ್ನು ಹಾಕಬಹುದು ಮತ್ತು ನಂತರ ಹೈಕುಪೋರ್ಟರ್ ಅನ್ನು ಅದಕ್ಕೆ ತೋರಿಸಬಹುದು.

ನನಗೆ ಬೇಕಾಗಿರುವುದು ಇಷ್ಟೇ - ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಸಾರ್ವಜನಿಕವಾಗಿ ಹೋಸ್ಟ್ ಮಾಡುವ ಮಾರ್ಗವನ್ನು ನಾನು ಕಂಡುಕೊಳ್ಳಲು ಬಯಸದಿದ್ದರೆ. ಆದರೆ ಅದು ಬೇರೆ ಪೋಸ್ಟ್‌ಗೆ ವಿಷಯವಾಗಿದೆ.

ಹೈಕುಪೋರ್ಟರ್ ಮತ್ತು ಹೈಕುಪೋರ್ಟ್‌ಗಳನ್ನು ಸ್ಥಾಪಿಸಲಾಗುತ್ತಿದೆ

cd /boot/home/
git clone https://github.com/haikuports/haikuporter --depth=50
git clone https://github.com/haikuports/haikuports --depth=50
ln -s /boot/home/haikuporter/haikuporter /boot/home/config/non-packaged/bin/ # make it runnable from anywhere
cd haikuporter
cp haikuports-sample.conf /boot/home/config/settings/haikuports.conf
sed -i -e 's|/mydisk/haikuports|/boot/home/haikuports|g' /boot/home/config/settings/haikuports.conf

ಪಾಕವಿಧಾನ ಬರೆಯುವುದು

SUMMARY="Demo QtQuick application"
DESCRIPTION="QtQuickApp is a demo QtQuick application for testing Haiku porting and packaging"
HOMEPAGE="https://github.com/probonopd/QtQuickApp"
COPYRIGHT="None"
LICENSE="MIT"
REVISION="1"
SOURCE_URI="https://github.com/probonopd/QtQuickApp.git"
#PATCHES=""
ARCHITECTURES="x86_64"
PROVIDES="
    QtQuickApp = $portVersion
"
REQUIRES="
    haiku
"
BUILD_REQUIRES="
    haiku_devel
    cmd:qmake
"BUILD()
{
    qmake .
    make $jobArgs
}INSTALL()
{
    make install
}

ಪಾಕವಿಧಾನವನ್ನು ಜೋಡಿಸುವುದು

ನಾನು ಫೈಲ್ ಅನ್ನು ಹೆಸರಿನಲ್ಲಿ ಉಳಿಸುತ್ತೇನೆ. QtQuickApp-1.0.recipe, ಅದರ ನಂತರ ನಾನು ಪ್ರಾರಂಭಿಸುತ್ತೇನೆ aikuporter -S ./QuickApp-1.0.recipeರೆಪೊಸಿಟರಿಯಲ್ಲಿರುವ ಎಲ್ಲಾ ಪ್ಯಾಕೇಜ್‌ಗಳಿಗೆ ಅವಲಂಬನೆಗಳನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತದೆ. ಹೈಕುಪೋರ್ಟ್‌ಗಳು, ಸ್ವಲ್ಪ ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ನಾನು ಕಾಫಿ ಕುಡಿಯಲು ಹೋಗುತ್ತೇನೆ.

ಈ ಪರಿಶೀಲನೆಯನ್ನು ನನ್ನ ಸ್ಥಳೀಯ ಯಂತ್ರದಲ್ಲಿ ಏಕೆ ಮಾಡಬೇಕು, ಮತ್ತು ಎಲ್ಲರಿಗೂ ಒಮ್ಮೆ ಸರ್ವರ್‌ನಲ್ಲಿ ಕೇಂದ್ರೀಯವಾಗಿ ಮಾಡಬಾರದು?

ಶ್ರೀ ಪ್ರಕಾರ. ವಾಡ್ಲ್‌ಸ್ಪ್ಲಾಶ್:

ನೀವು ರೆಪೊಸಿಟರಿಯಲ್ಲಿರುವ ಯಾವುದೇ ಫೈಲ್ ಅನ್ನು ಪುನಃ ಬರೆಯಬಹುದಾದ ರೀತಿಯಲ್ಲಿ 😉 ಅಗತ್ಯವಿದ್ದಾಗ ಅಗತ್ಯ ಮಾಹಿತಿಯನ್ನು ಲೆಕ್ಕಹಾಕುವ ಮೂಲಕ ನೀವು ಇದನ್ನು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಅತ್ಯುತ್ತಮವಾಗಿಸಬಹುದು, ಏಕೆಂದರೆ ಕೊನೆಯದಾಗಿ ಮಾಡಿದ ಬದಲಾವಣೆಗಳು ಬಹಳ ಅಪರೂಪ.

~/QtQuickApp> haikuporter  QtQuickApp-1.0.recipe
Checking if any dependency-infos need to be updated ...
Looking for stale dependency-infos ...
Error: QtQuickApp not found in repository

ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್‌ನ ಮೂಲ ಕೋಡ್ ಅನ್ನು ಒಳಗೊಂಡಿರುವ ಸರಳ ಪಾಕವಿಧಾನ ಫೈಲ್‌ನಂತಹ ಯಾವುದೇ ವಿಷಯವಿಲ್ಲ ಎಂದು ಅದು ತಿರುಗುತ್ತದೆ. ನೀವು ಅದನ್ನು ಹೈಕುಪೋರ್ಟ್ಸ್ ಸ್ವರೂಪದಲ್ಲಿ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಇಡಬೇಕು.

~/QtQuickApp> mv QtQuickApp-1.0.recipe ../haikuports/app-misc/QtQuickApp/
~/QtQuickApp> ../haikuport
~/QtQuickApp> haikuporter -S QtQuickApp-1.0.recipe

ಇದು ನಿರ್ಮಾಣವನ್ನು ಹೆಚ್ಚು ತೊಡಕಾಗಿಸುತ್ತದೆ. ನನಗೆ ಇದು ವಿಶೇಷವಾಗಿ ಇಷ್ಟವಿಲ್ಲ, ಆದರೆ ಎಲ್ಲಾ ಓಪನ್ ಸೋರ್ಸ್ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಳು ಅಂತಿಮವಾಗಿ ಹೈಕುಪೋರ್ಟ್‌ಗಳಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳಲು ಇದು ಅಗತ್ಯ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

ನನಗೆ ಈ ಕೆಳಗಿನವುಗಳು ಸಿಗುತ್ತವೆ:

~/QtQuickApp> haikuporter -S QtQuickApp-1.0.recipe
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
Error: QtQuickApp-1.0.recipe not found in tree.

ಏನು ತಪ್ಪಾಗಿದೆ? ಐಆರ್‌ಸಿ ಓದಿದ ನಂತರ ನಾನು:

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------Downloading: https://github.com/probonopd/QtQuickApp.git ...
--2019-07-14 16:12:44--  https://github.com/probonopd/QtQuickApp.git
Resolving github.com... 140.82.118.3
Connecting to github.com|140.82.118.3|:443... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: https://github.com/probonopd/QtQuickApp [following]
--2019-07-14 16:12:45--  https://github.com/probonopd/QtQuickApp
Reusing existing connection to github.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git’
     0K .                                                     1.34M=0.06s
2019-07-14 16:12:45 (1.34 MB/s) - ‘/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git’ saved [90094]
Validating checksum of QtQuickApp.git
Warning: ----- CHECKSUM TEMPLATE -----
Warning: CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"
Warning: -----------------------------
Error: No checksum found in recipe!

ಒಂದು ಕುತೂಹಲಕಾರಿ ಪ್ರಶ್ನೆ ಉದ್ಭವಿಸಿದೆ. ನಾನು ಒಂದು ಪಾಕವಿಧಾನಕ್ಕೆ ಚೆಕ್‌ಸಮ್ ಅನ್ನು ಸೇರಿಸಿದರೆ, ಅದು ನಿರಂತರ ಏಕೀಕರಣಕ್ಕಾಗಿ ಇತ್ತೀಚಿನ ಗಿಟ್ ಕಮಿಟ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆಯೇ? (ಒಬ್ಬ ಡೆವಲಪರ್ ದೃಢೀಕರಿಸುತ್ತಾರೆ: "ಏನೂ ಆಗುವುದಿಲ್ಲ. ಪಾಕವಿಧಾನಗಳನ್ನು ತುಲನಾತ್ಮಕವಾಗಿ ಸ್ಥಿರವಾಗಿರಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.")

ವಿನೋದಕ್ಕಾಗಿ, ಪಾಕವಿಧಾನಕ್ಕೆ ಸೇರಿಸಿ:

CHECKSUM_SHA256="cf906a65442748c95df16730c66307a46d02ab3a12137f89076ec7018d8ce18c"

ಇನ್ನೂ ತೃಪ್ತಿಯಾಗಿಲ್ಲ:

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
        updating dependency infos of QtQuickApp-1.0
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------
Skipping download of source for QtQuickApp.git
Validating checksum of QtQuickApp.git
Unpacking source of QtQuickApp.git
Error: Unrecognized archive type in file /boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git

ಅದು ಏನು? ಎಲ್ಲಾ ನಂತರ, ಇದು ಒಂದು git repository, ಕೋಡ್ ಈಗಾಗಲೇ ಅಲ್ಲಿ ನೇರವಾಗಿ ಇದೆ, ಅನ್ಪ್ಯಾಕ್ ಮಾಡಲು ಏನೂ ಇಲ್ಲ. ನನ್ನ ದೃಷ್ಟಿಕೋನದಿಂದ, ಉಪಕರಣವು GitHub ನಿಂದ URL ನೀಡಿದ್ದರೆ ಅನ್ಪ್ಯಾಕರ್ ಅನ್ನು ಹುಡುಕದಷ್ಟು ಸ್ಮಾರ್ಟ್ ಆಗಿರಬೇಕು.

ಬಹುಶಃ uri git:// ಕೆಲಸ ಮಾಡಬಹುದೇ?

SOURCE_URI="git://github.com/probonopd/QtQuickApp.git"

ಈಗ ಅದು ಈ ರೀತಿ ದೂರು ನೀಡುತ್ತದೆ:

Downloading: git://github.com/probonopd/QtQuickApp.git ...
Error: Downloading from unsafe sources is disabled in haikuports.conf!

ಹ್ಮ್ಮ್, ಅದು ಏಕೆ ತುಂಬಾ ಜಟಿಲವಾಗಿದೆ, ಅದು ಏಕೆ "ಕೆಲಸ ಮಾಡಲು" ಸಾಧ್ಯವಿಲ್ಲ? ಎಲ್ಲಾ ನಂತರ, GitHub ನಿಂದ ಏನನ್ನಾದರೂ ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಾಗುವುದು ಅಷ್ಟು ಅಪರೂಪವಲ್ಲ. ಕಾನ್ಫಿಗರೇಶನ್ ಅಗತ್ಯವಿಲ್ಲದೆ, ಅಥವಾ ನಾನು ಅದನ್ನು "ಗಲಾಟೆ ಮಾಡುವುದು" ಎಂದು ಕರೆಯುವಂತೆ ತಕ್ಷಣವೇ ಕಾರ್ಯನಿರ್ವಹಿಸುವ ಪರಿಕರಗಳೊಂದಿಗೆ ಇದು ವಿಭಿನ್ನ ಕಥೆಯಾಗಿದೆ.

ಬಹುಶಃ ಇದು ಕೆಲಸ ಮಾಡುತ್ತದೆ:

SOURCE_URI="git+https://github.com/probonopd/QtQuickApp.git"

ಇಲ್ಲ. ಇನ್ನೂ ಆ ವಿಚಿತ್ರ ದೋಷ ಬರುತ್ತಿದೆ ಮತ್ತು ಮಾಡುತ್ತಿದ್ದೇನೆ, ಇಲ್ಲಿ ವಿವರಿಸಿದಂತೆ

sed -i -e 's|#ALLOW_UNSAFE_SOURCES|ALLOW_UNSAFE_SOURCES|g' /boot/home/config/settings/haikuports.conf

ನಾನು ಸ್ವಲ್ಪ ಮುಂದೆ ಹೋಗುತ್ತಿದ್ದೇನೆ, ಆದರೆ ಅದು ಏಕೆ ನನ್ನ ಮೇಲೆ ಕೂಗುತ್ತಿದೆ (ಗಿಟ್‌ಹಬ್ ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ!) ಮತ್ತು ಇನ್ನೂ ಏನನ್ನಾದರೂ ಅನ್ಪ್ಯಾಕ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿದೆ.

ಪ್ರಕಾರ ಶ್ರೀ waddlesplash:

ಸರಿ, ಹೌದು, ನಿರ್ಮಾಣಕ್ಕಾಗಿ ಸ್ವೀಕರಿಸಿದ ಡೇಟಾದ ಸಮಗ್ರತೆಯನ್ನು ಪರಿಶೀಲಿಸುವ ಬಯಕೆಯೇ ಕಾರಣವಾಗಿತ್ತು. ಒಂದು ಆಯ್ಕೆಯೆಂದರೆ ಆರ್ಕೈವ್ ಚೆಕ್ಸಮ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವುದು, ಆದರೆ ಸಹಜವಾಗಿ, ನೀವು ವೈಯಕ್ತಿಕ ಫೈಲ್‌ಗಳನ್ನು ಹ್ಯಾಶ್ ಮಾಡಬಹುದು, ಅದನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲಾಗುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಇದು ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ. ಇದರ ಪರಿಣಾಮವೆಂದರೆ git ಮತ್ತು ಇತರ VCS ನ "ಅಭದ್ರತೆ". ಹೆಚ್ಚಾಗಿ, ಇದು ಯಾವಾಗಲೂ ಹಾಗೆ ಇರುತ್ತದೆ, ಏಕೆಂದರೆ GitHub ನಲ್ಲಿ ಆರ್ಕೈವ್ ಅನ್ನು ರಚಿಸುವುದು ತುಂಬಾ ಸುಲಭ ಮತ್ತು ಆಗಾಗ್ಗೆ ವೇಗವಾಗಿರುತ್ತದೆ. ಸರಿ, ಭವಿಷ್ಯದಲ್ಲಿ, ಬಹುಶಃ ದೋಷ ಸಂದೇಶವು ಅಷ್ಟೊಂದು ಕಿರುಚುವಂತಿಲ್ಲ ... (ನಾವು ಇನ್ನು ಮುಂದೆ ಹೈಕುಪೋರ್ಟ್‌ಗಳಲ್ಲಿ ಅಂತಹ ಪಾಕವಿಧಾನಗಳನ್ನು ವಿಲೀನಗೊಳಿಸುವುದಿಲ್ಲ).

~/QtQuickApp> haikuporter -S QtQuickApp
Checking if any dependency-infos need to be updated ...
Looking for stale dependency-infos ...
----------------------------------------------------------------------
app-misc::QtQuickApp-1.0
        /boot/home/haikuports/app-misc/QtQuickApp/QtQuickApp-1.0.recipe
----------------------------------------------------------------------Downloading: git+https://github.com/probonopd/QtQuickApp.git ...
Warning: UNSAFE SOURCES ARE BAD AND SHOULD NOT BE USED IN PRODUCTION
Warning: PLEASE MOVE TO A STATIC ARCHIVE DOWNLOAD WITH CHECKSUM ASAP!
Cloning into bare repository '/boot/home/haikuports/app-misc/QtQuickApp/download/QtQuickApp.git'...
Unpacking source of QtQuickApp.git
tar: /boot/home/haikuports/app-misc/QtQuickApp/work-1.0/sources/QtQuickApp-1.0: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Command 'git archive HEAD | tar -x -C "/boot/home/haikuports/app-misc/QtQuickApp/work-1.0/sources/QtQuickApp-1.0"' returned non-zero exit status 2

ಹಳೆಯ ಅಭ್ಯಾಸದಿಂದ, ನಾನು irc.freenode.net ನಲ್ಲಿ #haiku ಚಾನೆಲ್‌ನಲ್ಲಿರುವ ದಯಾಳು ಜನರನ್ನು ಕೇಳುತ್ತೇನೆ. ಅವರಿಲ್ಲದೆ ನಾನು ಎಲ್ಲಿರುತ್ತಿದ್ದೆ? ಸುಳಿವು ನೀಡಿದ ನಂತರ, ನಾನು ಇದನ್ನು ಬಳಸಬೇಕೆಂದು ಅರಿತುಕೊಂಡೆ:

srcGitRev="d0769f53639eaffdcd070bddfb7113c04f2a0de8"
SOURCE_URI="https://github.com/probonopd/QtQuickApp/archive/$srcGitRev.tar.gz"
SOURCE_DIR="QtQuickApp-$srcGitRev"
CHECKSUM_SHA256="db8ab861cfec0ca201e9c7b6c0c9e5e828cb4e9e69d98e3714ce0369ba9d9522"

ಸರಿ, ಅದು ಏನು ಮಾಡುತ್ತದೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಯಿತು - ಇದು ಒಂದು ನಿರ್ದಿಷ್ಟ ಪರಿಷ್ಕರಣೆಯ ಮೂಲಗಳೊಂದಿಗೆ ಆರ್ಕೈವ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುತ್ತದೆ. ನನ್ನ ದೃಷ್ಟಿಕೋನದಿಂದ ಮೂರ್ಖತನ, ಮತ್ತು ನಾನು ಬಯಸಿದ್ದಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ, ಮಾಸ್ಟರ್ ಶಾಖೆಯಿಂದ ಇತ್ತೀಚಿನ ಪರಿಷ್ಕರಣೆಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುವುದು.

ಅಭಿವರ್ಧಕರಲ್ಲಿ ಒಬ್ಬರು ಇದನ್ನು ಈ ರೀತಿ ವಿವರಿಸಿದ್ದಾರೆ:

ನಮಗೆ ನಮ್ಮದೇ ಆದ CI ಇದೆ, ಆದ್ದರಿಂದ ಹೈಕುಪೋರ್ಟ್ಸ್ ರೆಪೊಗೆ ಹೋಗುವ ಯಾವುದೇ ವಸ್ತುವನ್ನು ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ಪ್ಯಾಕೇಜ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ನಾವು "ಎಲ್ಲವನ್ನೂ ಅಪ್‌ಸ್ಟ್ರೀಮ್" ನಲ್ಲಿ ನಿರ್ಮಿಸುವ ಮತ್ತು ಸಾಗಿಸುವ ಅಪಾಯವನ್ನು ಎದುರಿಸಲು ಬಯಸುವುದಿಲ್ಲ.

ಅರ್ಥವಾಯಿತು! ಏನೇ ಇರಲಿ, ನಡೆದದ್ದು ಇಲ್ಲಿದೆ:

waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
waiting for build package QtQuickApp-1.0-1 to be activated
(...)

ಇದು ಅನಂತವಾಗಿ ಪುನರಾವರ್ತಿಸುತ್ತದೆ. ಸ್ಪಷ್ಟವಾಗಿ, ಇದು ತಪ್ಪಾಗಿದೆ (ವಿನಂತಿ ಇದೆಯೇ? ನನಗೆ ಅದು ಸಿಗಲಿಲ್ಲ).

С haikuporter ಮತ್ತು ಭಂಡಾರ ಹೈಕುಪೋರ್ಟ್‌ಗಳು ಇದು "ಕೇವಲ ಕೆಲಸ ಮಾಡುತ್ತದೆ" ಎಂದು ಅನಿಸುವುದಿಲ್ಲ, ಆದರೆ ಒಬ್ಬ ಡೆವಲಪರ್ ಆಗಿ, ಹೈಕು ಜೊತೆ ಕೆಲಸ ಮಾಡುವುದರಲ್ಲಿ ನನಗೆ ಇಷ್ಟವಾದ ಕೆಲವು ವಿಷಯಗಳಿವೆ. ಇದು ಹೆಚ್ಚಾಗಿ ಓಪನ್ ಬಿಲ್ಡ್ ಸೇವೆಗೆ ಹೋಲುತ್ತದೆ - ಬಿಲ್ಡ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಪರಿಕರಗಳ ಗುಂಪೊಂದು. Linux: ಅತ್ಯಂತ ಶಕ್ತಿಶಾಲಿ, ವ್ಯವಸ್ಥಿತ ವಿಧಾನದೊಂದಿಗೆ, ಆದರೆ ನನ್ನ ಸಣ್ಣ "ಹಲೋ ವರ್ಲ್ಡ್" ಮಟ್ಟದ ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಅತಿಯಾಗಿದೆ.

ಮತ್ತೊಮ್ಮೆ, ಶ್ರೀ ವ್ಯಾಡಲ್‌ಸ್ಪ್ಲಾಶ್ ಪ್ರಕಾರ:

ಹೈಕುಪೋರ್ಟರ್ ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಸಾಕಷ್ಟು ಕಟ್ಟುನಿಟ್ಟಾಗಿದೆ (ಮತ್ತು ಲಿಂಟ್ ಮೋಡ್ ಮತ್ತು ಅದನ್ನು ಇನ್ನಷ್ಟು ಕಠಿಣಗೊಳಿಸುವ ಕಟ್ಟುನಿಟ್ಟಾದ ಮೋಡ್ ಇದೆ!), ಆದರೆ ಅದು ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವುದರಿಂದ ಮಾತ್ರ ಕೆಲಸ ಮಾಡುತ್ತದೆ, ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವುದಲ್ಲ. ಅದಕ್ಕಾಗಿಯೇ ಅದು ಘೋಷಿಸದ ಅವಲಂಬನೆಗಳು, ಸರಿಯಾಗಿ ಆಮದು ಮಾಡಿಕೊಳ್ಳದ ಗ್ರಂಥಾಲಯಗಳು, ತಪ್ಪು ಆವೃತ್ತಿಗಳು ಇತ್ಯಾದಿಗಳ ಬಗ್ಗೆ ದೂರು ನೀಡುತ್ತದೆ. ಬಳಕೆದಾರರು ಅವುಗಳ ಬಗ್ಗೆ ತಿಳಿದುಕೊಳ್ಳುವ ಮೊದಲೇ ಭವಿಷ್ಯದ ಸಮಸ್ಯೆಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಯಾವುದೇ ಮತ್ತು ಎಲ್ಲಾ ಸಮಸ್ಯೆಗಳನ್ನು ಹಿಡಿಯುವುದು ಗುರಿಯಾಗಿದೆ (ಅದಕ್ಕಾಗಿಯೇ ಅವ್ರ್ಡುಡ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ವಿಫಲವಾಗಿದೆ, ಏಕೆಂದರೆ ಪಾಕವಿಧಾನವು ವಾಸ್ತವವಾಗಿ ಅವಲಂಬನೆಯನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದೆ). ಲೈಬ್ರರಿಗಳು ಕೇವಲ ಪ್ರತ್ಯೇಕ ಪ್ಯಾಕೇಜ್‌ಗಳು ಅಥವಾ SO ನ ನಿರ್ದಿಷ್ಟ ಆವೃತ್ತಿಗಳಲ್ಲ. ರನ್‌ಟೈಮ್ ದೋಷಗಳನ್ನು ತಪ್ಪಿಸಲು ಹೈಕುಪೋರ್ಟರ್ ಪಾಕವಿಧಾನಗಳಲ್ಲಿಯೇ ಇವೆಲ್ಲವನ್ನೂ ಜಾರಿಗೊಳಿಸುತ್ತದೆ.

ತಾತ್ವಿಕವಾಗಿ, ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಅನ್ನು ರಚಿಸುವಾಗ ಈ ಮಟ್ಟದ ಕಟ್ಟುನಿಟ್ಟಿನತೆ ಸಮರ್ಥನೀಯವಾಗಿದೆ, ಆದರೆ "ಹಲೋ ವರ್ಲ್ಡ್" ಅಪ್ಲಿಕೇಶನ್‌ಗೆ ಇದು ನನಗೆ ವಿಪರೀತವಾಗಿ ತೋರುತ್ತದೆ. ನಾನು ಬೇರೆ ಯಾವುದನ್ನಾದರೂ ಪ್ರಯತ್ನಿಸಲು ನಿರ್ಧರಿಸಿದೆ.

"ಪ್ಯಾಕೇಜ್ ಕ್ರಿಯೇಟ್" ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು hpkg ಸ್ವರೂಪದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವುದು.

ಇರಬಹುದು ಹೌದು ನನಗೆ ಸರಳ ಸೂಚನೆ ಉತ್ತಮವಾಗಿ ಕೆಲಸ ಮಾಡುತ್ತದೆಯೇ?

mkdir -p apps/
cp QtQuickApp apps/cat >  .PackageInfo <<EOF
name QtQuickApp
version 1.0-1
architecture x86_64

summary "Demo QtQuick application"
description "QtQuickApp is a demo QtQuick application for testing Haiku porting and packaging"

packager "probono"
vendor "probono"

copyrights "probono"
licenses "MIT"

provides {
  QtQuickApp = 1.0-1
}requires {
  qt5
}
EOFpackage create -b QtQuickApp.hpkg
package add QtQuickApp.hpkg apps# See below if you also want the application
# to appear in the menu

ಅನಿರೀಕ್ಷಿತವಾಗಿ ವೇಗವಾಗಿ, ಅನಿರೀಕ್ಷಿತವಾಗಿ ಸರಳವಾಗಿ, ಅನಿರೀಕ್ಷಿತವಾಗಿ ಪರಿಣಾಮಕಾರಿ. ನನಗೆ ಇಷ್ಟವಾದ ರೀತಿ, ಅದ್ಭುತ!

ಸ್ಥಾಪನೆ - ಏನು ಮತ್ತು ಎಲ್ಲಿ?

QtQuickApp.hpkg ಫೈಲ್ ಅನ್ನು ಇಲ್ಲಿಗೆ ಸರಿಸಲಾಗಿದೆ ~/config/packages, ಫೈಲ್ ಮ್ಯಾನೇಜರ್ ಬಳಸಿ, ನಂತರ QtQuickApp ಮಾಂತ್ರಿಕವಾಗಿ ಕಾಣಿಸಿಕೊಂಡಿತು ~/config/apps.
ಮತ್ತೊಮ್ಮೆ, ಅನಿರೀಕ್ಷಿತವಾಗಿ ವೇಗವಾಗಿ, ಸರಳವಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ. ಅದ್ಭುತ, ಅದ್ಭುತ!

ಆದರೆ... (ಅವರಿಲ್ಲದಿದ್ದರೆ ನಾವು ಎಲ್ಲಿರುತ್ತಿದ್ದೆವು!)

ಅಪ್ಲಿಕೇಶನ್ ಮೆನು ಪಟ್ಟಿಯಿಂದ ಮತ್ತು ಕ್ವಿಕ್‌ಲಾಂಚ್‌ನಿಂದ ಅಪ್ಲಿಕೇಶನ್ ಇನ್ನೂ ಕಾಣೆಯಾಗಿದೆ. ಅದನ್ನು ಹೇಗೆ ಸರಿಪಡಿಸುವುದು ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. ಫೈಲ್ ಮ್ಯಾನೇಜರ್‌ನಲ್ಲಿ, ನಾನು QtQuickApp.hpkg ಅನ್ನು ~/config/packages ನಿಂದ /system/packages ಗೆ ಸರಿಸುತ್ತೇನೆ.

ಇಲ್ಲ, ಇನ್ನೂ ಕಾಣುತ್ತಿಲ್ಲ. ಸ್ಪಷ್ಟವಾಗಿ ನಾನು (ಮತ್ತು ಕೈಪಿಡಿ) ಏನನ್ನಾದರೂ ತಪ್ಪಿಸಿಕೊಂಡಿದ್ದೇನೆ.

ಇತರ ಕೆಲವು ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಹೈಕು ಡಿಪೋದಲ್ಲಿನ ವಿಷಯಗಳ ಟ್ಯಾಬ್ ಅನ್ನು ನೋಡಿದ ನಂತರ, ಅಲ್ಲಿ ಅಂತಹ ಫೈಲ್‌ಗಳು ಇರುವುದನ್ನು ನಾನು ನೋಡಿದೆ /data/mimedb/application/x-vnd... ಇನ್ನೂ ಗಮನಾರ್ಹವಾದ ವಿಷಯವೆಂದರೆ, /data/deskbar/menu/Applications/….

ಸರಿ, ನಾನು ಅಲ್ಲಿ ಏನು ಹಾಕಬೇಕು? ನೋಡೋಣ...

mkdir -p data/deskbar/menu/Applications/
( cd data/deskbar/menu/Applications ; ln -s ../../../../apps/QtQuickApp . )
package add QtQuickApp.hpkg apps data

ಈ ಟ್ರಿಕ್ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ನನಗೆ ಖಚಿತವಾಗಿದೆ, ಆದರೆ ಇನ್ನೂ ಪ್ರಶ್ನೆಗಳಿವೆ: ಇದು ಏಕೆ ಅಗತ್ಯ, ಇದು ಯಾವುದಕ್ಕಾಗಿ? ನನ್ನ ಅಭಿಪ್ರಾಯದಲ್ಲಿ, ಈ ವ್ಯವಸ್ಥೆಯು ತುಂಬಾ ಅತ್ಯಾಧುನಿಕವಾಗಿದೆ ಎಂಬ ಒಟ್ಟಾರೆ ಅನಿಸಿಕೆಯನ್ನು ಇದು ಹಾಳು ಮಾಡುತ್ತದೆ.

ಶ್ರೀ ವ್ಯಾಡಲ್‌ಸ್ಪ್ಲಾಶ್ ವಿವರಿಸಿದಂತೆ:

ಕೆಲವೊಮ್ಮೆ ಇತರ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಅಗತ್ಯವಿರುವ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಇರುತ್ತವೆ, ಆದರೆ ಅವು ಮೆನುವಿನಲ್ಲಿ ಇರುವುದಿಲ್ಲ. ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ನಲ್ಲಿರುವ LegacyPackageInstaller, ಇದು BeOS-ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ .pkg ಆರ್ಕೈವ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಸ್ಥಾಪಿಸಬೇಕೆಂದು ನೀವು ಬಯಸುತ್ತೀರಿ, ಆದರೆ ಅವುಗಳನ್ನು ಮೆನುವಿನಲ್ಲಿ ಹೊಂದಿದ್ದರೆ ಗೊಂದಲ ಉಂಟಾಗುತ್ತದೆ.

ಕೆಲವು ಕಾರಣಗಳಿಂದಾಗಿ ಸರಳವಾದ ಪರಿಹಾರವಿದೆ ಎಂದು ನನಗೆ ತೋರುತ್ತದೆ, ಉದಾಹರಣೆಗೆ Hidden=true ಫೈಲ್‌ಗಳಲ್ಲಿ .desktop ಮೇಲೆ Linux"ಗುಪ್ತ" ಮಾಹಿತಿಯನ್ನು ಸಂಪನ್ಮೂಲ ಮತ್ತು ಫೈಲ್ ಸಿಸ್ಟಮ್ ಗುಣಲಕ್ಷಣವನ್ನಾಗಿ ಏಕೆ ಮಾಡಬಾರದು?

ಮೆನುವನ್ನು ಪ್ರದರ್ಶಿಸುವ (ಕೆಲವು) ಅಪ್ಲಿಕೇಶನ್‌ನ ಹೆಸರು ವಿಶೇಷವಾಗಿ ಸೂಕ್ಷ್ಮವಾಗಿಲ್ಲ, deskbar, ದಾರಿಯಲ್ಲಿ ಕಟ್ಟುನಿಟ್ಟಾಗಿ ಕಟ್ಟಲಾಗಿದೆ.

ಶ್ರೀ ವ್ಯಾಡಲ್‌ಸ್ಪ್ಲಾಶ್ ಈ ವಿಷಯದ ಬಗ್ಗೆ ವಿವರಿಸುತ್ತಾರೆ:

ಈ ಸಂದರ್ಭದಲ್ಲಿ "ಡೆಸ್ಕ್‌ಬಾರ್" ಅನ್ನು ಸಾಮಾನ್ಯ ಪದವಾಗಿ ಅರ್ಥೈಸಿಕೊಳ್ಳಬೇಕು ("ಟಾಸ್ಕ್‌ಬಾರ್" ನಂತೆಯೇ, ಇದು ಅಪ್ಲಿಕೇಶನ್ ಎರಡನ್ನೂ ಸೂಚಿಸುತ್ತದೆ Windows, ಮತ್ತು ಸಾಮಾನ್ಯ ಪರಿಕಲ್ಪನೆಗೆ). ಸರಿ, ಏಕೆಂದರೆ ಇದು deskbar, ಮತ್ತು "ಡೆಸ್ಕ್‌ಬಾರ್" ಅಲ್ಲ, ಇದನ್ನು ಸಹ ಇದೇ ರೀತಿಯಲ್ಲಿ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಬಹುದು.

ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ
ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹೊಂದಿರುವ 2 "ಬಹುತೇಕ ಒಂದೇ ರೀತಿಯ" ಡೈರೆಕ್ಟರಿಗಳು

ಅಪ್ಲಿಕೇಶನ್‌ಗಳೊಂದಿಗೆ 2 ಡೈರೆಕ್ಟರಿಗಳು ಏಕೆ ಇವೆ, ಮತ್ತು ನನ್ನ QtQuickApplication ಒಂದರಲ್ಲಿ ಏಕೆ ಇದೆ, ಆದರೆ ಇನ್ನೊಂದರಲ್ಲಿ ಏಕೆ ಇಲ್ಲ? (ಎಲ್ಲಾ ನಂತರ, ಇದು ಸಿಸ್ಟಮ್ ಅಲ್ಲ, ಆದರೆ ಬಳಕೆದಾರ, ಇದು ನನಗೆ ವೈಯಕ್ತಿಕವಾಗಿ ಅರ್ಥವಾಗುವಂತಹದ್ದಾಗಿದೆ).
ನನಗೆ ತುಂಬಾ ಗೊಂದಲವಾಗಿದೆ ಮತ್ತು ಇದನ್ನು ಏಕೀಕರಿಸಬೇಕು ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ.

mr.waddlesplash ಅವರ ಕಾಮೆಂಟ್

ಮೆನುವಿನಲ್ಲಿ ಅಗತ್ಯವಿಲ್ಲದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ಕ್ಯಾಟಲಾಗ್‌ನಲ್ಲಿವೆ. ಆದರೆ ಮೆನುವಿನಲ್ಲಿರುವ ಪರಿಸ್ಥಿತಿಯನ್ನು ನಿಜವಾಗಿಯೂ ಸುಧಾರಿಸಬೇಕಾಗಿದೆ, ಅದನ್ನು ಹೆಚ್ಚು ಗ್ರಾಹಕೀಯಗೊಳಿಸಬಹುದಾಗಿದೆ.

ವಿನಂತಿಸಿ, ಇಲ್ಲದಿದ್ದರೆ ಅದು ಆಗುವುದಿಲ್ಲ 😉

ನಾನು ಆಶ್ಚರ್ಯ ಪಡುತ್ತಿದ್ದೆ: ಅರ್ಜಿಗಳನ್ನು ಹಾಕುವುದು ನಿಜವಾಗಿಯೂ ಅಗತ್ಯವಿದೆಯೇ? /system/apps, ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಅಲ್ಲಿ ನೋಡಲು ಬಯಸದಿದ್ದರೆ. ಬಹುಶಃ ಬಳಕೆದಾರರು ಅವುಗಳನ್ನು ಎದುರಿಸದ ಬೇರೆಲ್ಲಿಯಾದರೂ ಅವುಗಳನ್ನು ಇಡುವುದು ಉತ್ತಮವೇ? ಮ್ಯಾಕ್ ಓಎಸ್ ಎಕ್ಸ್‌ನಲ್ಲಿ ಮಾಡಿದಂತೆ, ಪ್ಯಾಕೇಜ್‌ಗಳ ವಿಷಯಗಳು ಅಲ್ಲಿ .app, ಇದು ಬಳಕೆದಾರರಿಗೆ ಗೋಚರಿಸಬಾರದು /Applications, /ಸಿಸ್ಟಮ್/ಲೈಬ್ರರಿ/…«` ನ ಆಳದಲ್ಲಿ ಅಡಗಿಕೊಂಡಿದೆ.

ಅವಲಂಬನೆಗಳ ಬಗ್ಗೆ ಏನು?

ಹೇಗಾದರೂ ಅವಲಂಬನೆಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದು ಯೋಗ್ಯವಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ, ಸರಿ? Qt ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಹೈಕು ಅನುಸ್ಥಾಪನೆಯ ಕಡ್ಡಾಯ ಭಾಗವೆಂದು ಪರಿಗಣಿಸಬಹುದೇ? ಇಲ್ಲ! Qt ಅನ್ನು ಡೀಫಾಲ್ಟ್ ಆಗಿ ಸ್ಥಾಪಿಸಲಾಗಿಲ್ಲ. ಪ್ಯಾಕೇಜ್ ಬಿಲ್ಡರ್ ELF ಫೈಲ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸುವ ಮೂಲಕ ಅವಲಂಬನೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ಧರಿಸಬಹುದೇ? ಹೈಕುಪೋರ್ಟರ್ ನಿಜವಾಗಿಯೂ ಇದನ್ನು ಮಾಡುತ್ತದೆ ಎಂದು ನನಗೆ ಹೇಳಲಾಗಿದೆ, ಆದರೆ package ಇಲ್ಲ. ಏಕೆಂದರೆ ಅದು ಕೇವಲ "ಪ್ಯಾಕೇಜ್ ಬಿಲ್ಡರ್" ಆಗಿದ್ದು ಅದು ತನ್ನದೇ ಆದ ಫೈಲ್‌ಗಳನ್ನು ರಚಿಸುತ್ತದೆ. hpkg.

ಒಂದು ಪ್ಯಾಕೇಜ್‌ನಲ್ಲಿ ಇಲ್ಲದ ಪ್ಯಾಕೇಜ್‌ಗಳ ಮೇಲೆ ಅವಲಂಬನೆ ಇರಬಾರದು ಎಂಬ ನೀತಿಯನ್ನು ಸೇರಿಸುವ ಮೂಲಕ ಹೈಕುವನ್ನು ಹೆಚ್ಚು ಅತ್ಯಾಧುನಿಕಗೊಳಿಸಬೇಕೇ? haikuports? (ನಾನು ಹಾಗೆ ಬಯಸುತ್ತೇನೆ, ಏಕೆಂದರೆ ಅಂತಹ ನೀತಿಯು ವಿಷಯಗಳನ್ನು ಹೆಚ್ಚು ಸುಲಭಗೊಳಿಸುತ್ತದೆ - ಹೆಚ್ಚುವರಿ ಪ್ಯಾಕೇಜ್ ಮೂಲಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸದೆ, ಎಲ್ಲಿಂದಲಾದರೂ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾದ ಪ್ರತಿಯೊಂದು ಪ್ಯಾಕೇಜ್‌ನ ಅವಲಂಬನೆಗಳನ್ನು ಸಿಸ್ಟಮ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪರಿಹರಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.)

ಶ್ರೀ ವ್ಯಾಡಲ್‌ಸ್ಪ್ಲಾಶ್ ವಿವರಿಸುತ್ತಾರೆ:

ನಾವು ಡೆವಲಪರ್‌ಗಳ ಸ್ವಾತಂತ್ರ್ಯವನ್ನು ಅಷ್ಟೊಂದು ಮಿತಿಗೊಳಿಸಲು ಬಯಸುವುದಿಲ್ಲ, ಏಕೆಂದರೆ ಕಂಪನಿಎಕ್ಸ್ ತನ್ನದೇ ಆದ ಅವಲಂಬನೆಗಳೊಂದಿಗೆ (ಮತ್ತು ಆದ್ದರಿಂದ ಒಂದು ರೆಪೊಸಿಟರಿ) ಸಾಫ್ಟ್‌ವೇರ್ ಸೆಟ್ ಅನ್ನು ಬೆಂಬಲಿಸಲು ಬಯಸಿದರೆ, ಅದು ಹಾಗೆ ಮಾಡಲು ಸಂಪೂರ್ಣವಾಗಿ ಉಚಿತವಾಗಿರುತ್ತದೆ ಎಂಬುದು ಸ್ಪಷ್ಟವಾಗಿದೆ.

ಆ ಸಂದರ್ಭದಲ್ಲಿ, ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಪ್ಯಾಕೇಜ್‌ಗಳು ಹೈಕುಪೋರ್ಟ್‌ಗಳಲ್ಲಿಲ್ಲದ ಯಾವುದರ ಮೇಲೂ ಅವಲಂಬನೆಯನ್ನು ತಪ್ಪಿಸಲು ಅಪ್ಲಿಕೇಶನ್‌ನೊಂದಿಗೆ ಅಗತ್ಯವಿರುವ ಎಲ್ಲವನ್ನೂ ಸಂಪೂರ್ಣವಾಗಿ ಪ್ಯಾಕ್ ಮಾಡುವ ಮೂಲಕ ಶಿಫಾರಸು ಮಾಡುವುದು ಯೋಗ್ಯವಾಗಿರುತ್ತದೆ. ಆದರೆ ಅದು ಈ ಸರಣಿಯ ಭವಿಷ್ಯದ ಲೇಖನಕ್ಕೆ ಒಂದು ವಿಷಯವಾಗಿದೆ ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ. [ಲೇಖಕರು AppImage ಕಡೆಗೆ ವಾಲುತ್ತಿದ್ದಾರೆಯೇ? — ಅನುವಾದಕರ ಟಿಪ್ಪಣಿ]

ಅಪ್ಲಿಕೇಶನ್ ಐಕಾನ್ ಸೇರಿಸಲಾಗುತ್ತಿದೆ

ನನ್ನ ಹೊಸದಾಗಿ ರಚಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್‌ನ ಸಂಪನ್ಮೂಲಗಳಿಗೆ ಅಚ್ಚುಕಟ್ಟಾಗಿ ಅಂತರ್ನಿರ್ಮಿತ ಐಕಾನ್‌ಗಳಲ್ಲಿ ಒಂದನ್ನು ಸೇರಿಸಲು ನಾನು ಬಯಸಿದರೆ ಏನು? ಇದು ಅದ್ಭುತ ವಿಷಯವಾಗಿದೆ ಎಂದು ತಿಳಿದುಬಂದಿದೆ, ಆದ್ದರಿಂದ ಇದು ಮುಂದಿನ ಲೇಖನಕ್ಕೆ ಆಧಾರವಾಗಿರುತ್ತದೆ.

ನಿರಂತರ ಅಪ್ಲಿಕೇಶನ್ ನಿರ್ಮಾಣವನ್ನು ಹೇಗೆ ಆಯೋಜಿಸುವುದು?

ಇಂಕ್ಸ್ಕೇಪ್ ನಂತಹ ಒಂದು ಯೋಜನೆಯನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ (ಹೌದು, ಅದು ಇನ್ನೂ ಹೈಕುವಿನಲ್ಲಿಲ್ಲ ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ, ಆದರೆ ಅದನ್ನು ತೋರಿಸಲು ಅನುಕೂಲಕರವಾಗಿದೆ). ಅವರು ಮೂಲ ಕೋಡ್ ಭಂಡಾರವನ್ನು ಹೊಂದಿದ್ದಾರೆ. https://gitlab.com/inkscape/inkscape.
ಯಾರಾದರೂ ತಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಮಾಡಿದಾಗಲೆಲ್ಲಾ, ಬಿಲ್ಡ್ ಪೈಪ್‌ಲೈನ್‌ಗಳನ್ನು ಪ್ರಚೋದಿಸಲಾಗುತ್ತದೆ, ನಂತರ ಬದಲಾವಣೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಪರೀಕ್ಷಿಸಲಾಗುತ್ತದೆ, ನಿರ್ಮಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ವಿವಿಧ ಪ್ಯಾಕೇಜ್‌ಗಳಲ್ಲಿ ಪ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತದೆ, ಇದರಲ್ಲಿ ಆಪ್‌ಇಮೇಜ್ ಸೇರಿದಂತೆ Linux (ಸಿಸ್ಟಂನಲ್ಲಿ ಏನು ಸ್ಥಾಪಿಸಬಹುದು ಅಥವಾ ಸ್ಥಾಪಿಸದೇ ಇರಬಹುದು ಎಂಬುದನ್ನು ಲೆಕ್ಕಿಸದೆ ಸ್ಥಳೀಯ ಪರೀಕ್ಷೆಗಾಗಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದಾದ ಸ್ವತಂತ್ರ ಅಪ್ಲಿಕೇಶನ್ ಪ್ಯಾಕೇಜ್ [ನನಗೆ ಗೊತ್ತಿತ್ತು! - ಅನುವಾದಕರ ಟಿಪ್ಪಣಿ]). ಪ್ರತಿ ವಿಲೀನ ವಿನಂತಿಯಲ್ಲೂ ಇದೇ ರೀತಿ ಸಂಭವಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ವಿಲೀನಕ್ಕೂ ಮುಂಚೆಯೇ ವಿಲೀನ ವಿನಂತಿಯಲ್ಲಿ ಪ್ರಸ್ತಾಪಿಸಲಾದ ಕೋಡ್‌ನಿಂದ ನಿರ್ಮಿಸಲಾದ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನೀವು ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು.

ಹಾಯ್ಕು ಜೊತೆ ನನ್ನ ಐದನೇ ದಿನ: ಕೆಲವು ಕಾರ್ಯಕ್ರಮಗಳನ್ನು ಪೋರ್ಟ್ ಮಾಡೋಣ
ನಿರ್ಮಾಣ ಯಶಸ್ವಿಯಾದರೆ (ಹಸಿರು ಬಣ್ಣದಲ್ಲಿ ಗುರುತಿಸಲಾಗಿದೆ) ಬಿಲ್ಡ್ ಸ್ಥಿತಿಗಳೊಂದಿಗೆ ವಿನಂತಿಗಳನ್ನು ವಿಲೀನಗೊಳಿಸಿ ಮತ್ತು ಬಿಲ್ಟ್ ಬೈನರಿಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯ.

ಈ ನಿರ್ಮಾಣವು ಡಾಕರ್ ಕಂಟೇನರ್‌ಗಳಲ್ಲಿ ಚಲಿಸುತ್ತದೆ. GitLab ಉಚಿತ ರನ್ನರ್‌ಗಳನ್ನು ನೀಡುತ್ತದೆ Linux, ಮತ್ತು ಕಸ್ಟಮ್ ರನ್ನರ್‌ಗಳನ್ನು ಪ್ಲಗ್ ಇನ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಬಹುದು ಎಂದು ನಾನು ಭಾವಿಸುತ್ತೇನೆ (ಅಂದಹಾಗೆ, ಹೈಕು ನಂತಹ ವ್ಯವಸ್ಥೆಗಳಿಗೆ ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ ಎಂದು ನನಗೆ ತಿಳಿದಿಲ್ಲ, ಅಲ್ಲಿ ಡಾಕರ್ ಅಥವಾ ಅಂತಹದ್ದೇನೂ ಇಲ್ಲ ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ, ಆದರೆ ಫ್ರೀಬಿಎಸ್‌ಡಿಯಲ್ಲಿ ಡಾಕರ್ ಕೂಡ ಇಲ್ಲ, ಆದ್ದರಿಂದ ಈ ಸಮಸ್ಯೆ ಹೈಕುಗೆ ವಿಶಿಷ್ಟವಲ್ಲ).

ಆದರ್ಶಪ್ರಾಯವಾಗಿ, ಹೈಕುಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವುದನ್ನು ಡಾಕರ್ ಕಂಟೇನರ್ ಒಳಗೆ ಮಾಡಬಹುದು Linuxಈ ಸನ್ನಿವೇಶದಲ್ಲಿ, ಹೈಕುವಿಗಾಗಿ ಕಟ್ಟಡ ನಿರ್ಮಾಣವನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಪೈಪ್‌ಲೈನ್‌ಗಳಲ್ಲಿ ಸಂಯೋಜಿಸಬಹುದು. ಕ್ರಾಸ್-ಕಂಪೈಲರ್‌ಗಳು ಇದೆಯೇ? ಅಥವಾ ನಾನು QEMU/KVM ನಂತಹದನ್ನು ಬಳಸಿಕೊಂಡು ಡಾಕರ್ ಕಂಟೇನರ್‌ನೊಳಗೆ ಸಂಪೂರ್ಣ ಹೈಕನ್ನು ಅನುಕರಿಸಬೇಕೇ (ಅದು ಡಾಕರ್ ಒಳಗೆ ಆ ರೀತಿಯಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಊಹಿಸಿ)? ಅಂದಹಾಗೆ, ಅನೇಕ ಯೋಜನೆಗಳು ಇದೇ ರೀತಿಯ ತತ್ವಗಳನ್ನು ಬಳಸುತ್ತವೆ. ಉದಾಹರಣೆಗೆ, ಸ್ಕ್ರೈಬಸ್ ಇದನ್ನು ಮಾಡುತ್ತದೆ - ಇದು ಈಗಾಗಲೇ ಹೈಕುವಿಗೆ ಲಭ್ಯವಿದೆ. ಒಂದು ದಿನ, ನಾನು ಕಳುಹಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ ಅಂತಹ ಹೈಕು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲು ಇತರ ಯೋಜನೆಗಳಿಗೆ ವಿನಂತಿಗಳನ್ನು ಎಳೆಯಿರಿ.

ಅಭಿವರ್ಧಕರಲ್ಲಿ ಒಬ್ಬರು ವಿವರಿಸುತ್ತಾರೆ:

ತಮ್ಮದೇ ಆದ ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ರಚಿಸಲು ಬಯಸುವ ಇತರ ಯೋಜನೆಗಳಿಗೆ, ಪ್ರಮಾಣಿತ CMake/CPack ವಿಧಾನವನ್ನು ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ಇತರ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್‌ಗಳನ್ನು ನೇರವಾಗಿ ಪ್ಯಾಕೇಜ್ ಬಿಲ್ಡರ್ ಅನ್ನು ಆಹ್ವಾನಿಸುವ ಮೂಲಕ ಬೆಂಬಲಿಸಬಹುದು, ಜನರು ಆಸಕ್ತಿ ಹೊಂದಿದ್ದರೆ ಚೆನ್ನಾಗಿರುತ್ತದೆ. ಇಲ್ಲಿಯವರೆಗೆ ಹೆಚ್ಚಿನ ಆಸಕ್ತಿ ಕಂಡುಬಂದಿಲ್ಲ ಎಂದು ಅನುಭವವು ತೋರಿಸುತ್ತದೆ, ಆದ್ದರಿಂದ ಹೈಕುಪೋರ್ಟರ್ ನಮಗೆ ಕೆಲಸ ಮಾಡಿದೆ, ಆದರೆ ಅಂತಿಮವಾಗಿ, ಎರಡೂ ವಿಧಾನಗಳು ಒಟ್ಟಿಗೆ ಕೆಲಸ ಮಾಡಬೇಕು. ನಾವು ಕ್ರಾಸ್-ಬಿಲ್ಡಿಂಗ್ ಸಾಫ್ಟ್‌ವೇರ್‌ಗಾಗಿ ಪರಿಕರಗಳ ಗುಂಪನ್ನು ಪರಿಚಯಿಸಬೇಕು. Linux ಅಥವಾ ಯಾವುದೇ ಇತರ ಸರ್ವರ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ (ಹೈಕು ಸರ್ವರ್‌ಗಳಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿಲ್ಲ).

ನಿಯಮಿತ ಬಳಕೆದಾರರಿಂದ ಎದ್ದು ನಿಂತು ಗೌರವ ಸಲ್ಲಿಸುವುದು Linux ಸರ್ವರ್ ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್‌ಗೆ ಅಗತ್ಯವಿರುವ ಈ ಎಲ್ಲಾ ಹೆಚ್ಚುವರಿ ಲೋಡ್ ಮತ್ತು ಸಾಮಾನುಗಳನ್ನು (ಭದ್ರತೆ, ಕಟ್ಟುನಿಟ್ಟಾದ ನಿಯಂತ್ರಣ, ಇತ್ಯಾದಿ) ಅವರು ಹೊತ್ತೊಯ್ಯುತ್ತಾರೆ, ಆದರೆ ಡೆಸ್ಕ್‌ಟಾಪ್ ಒಂದಲ್ಲ. ಆದ್ದರಿಂದ, ಹೈಕುಗಾಗಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸುವ ಸಾಮರ್ಥ್ಯವು Linux — ಸರಿಯಾದ ದಾರಿ.

ತೀರ್ಮಾನಕ್ಕೆ

POSIX ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಹೈಕುವಿಗೆ ಪೋರ್ಟ್ ಮಾಡುವುದು ಸಾಧ್ಯ, ಆದರೆ ಸರಳವಾದ ಪುನರ್ನಿರ್ಮಾಣಕ್ಕಿಂತ ಹೆಚ್ಚಿನ ಕೆಲಸವಾಗಬಹುದು. irc.freenode.net ನಲ್ಲಿರುವ #haiku ಚಾನೆಲ್‌ನಲ್ಲಿರುವ ಜನರ ಸಹಾಯವಿಲ್ಲದಿದ್ದರೆ ನಾನು ಖಂಡಿತವಾಗಿಯೂ ಬಹಳ ಸಮಯದವರೆಗೆ ಅದರಲ್ಲಿ ಸಿಲುಕಿಕೊಳ್ಳುತ್ತಿದ್ದೆ. ಆದರೆ ಅವರು ಸಹ ಯಾವಾಗಲೂ ಏನು ತಪ್ಪಾಗಿದೆ ಎಂದು ತಕ್ಷಣ ನೋಡುತ್ತಿರಲಿಲ್ಲ.

Qt ನಲ್ಲಿ ಬರೆದ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಸುಲಭವಾದ ಅಪವಾದ. ನಾನು ಯಾವುದೇ ಸಮಸ್ಯೆಗಳಿಲ್ಲದೆ ತುಂಬಾ ಸರಳವಾದ ಡೆಮೊ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ.

ಸರಳ ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಪ್ಯಾಕೇಜ್ ಅನ್ನು ನಿರ್ಮಿಸುವುದು ಸಹ ತುಂಬಾ ಸುಲಭ, ಆದರೆ "ಸಾಂಪ್ರದಾಯಿಕವಾಗಿ ಬಿಡುಗಡೆಯಾದ" ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗೆ ಮಾತ್ರ, ಅಂದರೆ ಹೈಕುಪೋರ್ಟ್‌ಗಳಲ್ಲಿ ಬೆಂಬಲಕ್ಕಾಗಿ ಉದ್ದೇಶಿಸಲಾದ ಆವೃತ್ತಿಯ ಮೂಲ ಕೋಡ್ ಆರ್ಕೈವ್‌ಗಳನ್ನು ಹೊಂದಿರುವವುಗಳಿಗೆ. ನಿರಂತರ ಬಿಲ್ಡ್‌ಗಳಿಗೆ (ಪ್ರತಿ ಕಮಿಟ್‌ಗೆ ಬಿಲ್ಡಿಂಗ್), GitHub ನೊಂದಿಗೆ ವಿಷಯಗಳು ಅಷ್ಟು ಸರಳವಾಗಿಲ್ಲ. ಇಲ್ಲಿ, ಹೈಕು ವಿತರಣೆಯಂತೆ ಭಾಸವಾಗುತ್ತದೆ. Linux, ಮ್ಯಾಕ್‌ನಲ್ಲಿನ ಫಲಿತಾಂಶಕ್ಕಿಂತ, Xcode ನಲ್ಲಿ "ಬಿಲ್ಡ್" ಬಟನ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವುದರಿಂದ ಪ್ಯಾಕೇಜ್ ಉತ್ಪತ್ತಿಯಾಗುತ್ತದೆ .app, ಡಿಸ್ಕ್ ಇಮೇಜ್‌ಗೆ ಸೇರಿಸಲು ಸಿದ್ಧವಾಗಿದೆ. .dmg, ನನ್ನ ಸೈಟ್‌ನಲ್ಲಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಸಿದ್ಧವಾಗಿದೆ.
"ಸರ್ವರ್" ಆಪರೇಟಿಂಗ್ ಸಿಸ್ಟಮ್ ಆಧಾರಿತ ಅಪ್ಲಿಕೇಶನ್‌ಗಳ ನಿರಂತರ ಜೋಡಣೆ, ಉದಾಹರಣೆಗೆ, Linux, ಡೆವಲಪರ್‌ಗಳಿಂದ ಬೇಡಿಕೆಯಿದ್ದರೆ ಸಾಧ್ಯವಾಗುವ ಸಾಧ್ಯತೆಯಿದೆ, ಆದರೆ ಪ್ರಸ್ತುತ ಹೈಕು ಯೋಜನೆಯು ಇತರ, ಹೆಚ್ಚು ಒತ್ತುವ ಕಾರ್ಯಗಳನ್ನು ಹೊಂದಿದೆ.

ನೀವೇ ಪ್ರಯತ್ನಿಸಿ! ಎಲ್ಲಾ ನಂತರ, ಹೈಕು ಯೋಜನೆಯು ಡಿವಿಡಿ ಅಥವಾ ಯುಎಸ್‌ಬಿಯಿಂದ ಬೂಟ್ ಮಾಡಲು ಚಿತ್ರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ежедневно. ಸ್ಥಾಪಿಸಲು, ಚಿತ್ರವನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಅದನ್ನು ಬಳಸಿಕೊಂಡು USB ಫ್ಲಾಶ್ ಡ್ರೈವ್‌ಗೆ ಬರ್ನ್ ಮಾಡಿ ಎಚರ್

ಪ್ರಶ್ನೆಗಳಿವೆಯೇ? ನಾವು ನಿಮ್ಮನ್ನು ರಷ್ಯನ್ ಭಾಷೆಗೆ ಆಹ್ವಾನಿಸುತ್ತೇವೆ ಟೆಲಿಗ್ರಾಮ್ ಚಾನಲ್.

ದೋಷ ಅವಲೋಕನ: C ಮತ್ತು C++ ನಲ್ಲಿ ಪಾದದಲ್ಲಿ ನಿಮ್ಮನ್ನು ಶೂಟ್ ಮಾಡುವುದು ಹೇಗೆ. ಹೈಕು ಓಎಸ್ ರೆಸಿಪಿ ಸಂಗ್ರಹ

ನಿಂದ ಲೇಖಕ ಅನುವಾದ: ಇದು ಹೈಕು ಕುರಿತ ಸರಣಿಯ ಐದನೇ ಲೇಖನ.

ಲೇಖನಗಳ ಪಟ್ಟಿ: ಮೊದಲನೆಯದು ಎರಡನೆಯದು ಮೂರನೇ ನಾಲ್ಕನೇ

ಮೂಲ: www.habr.com

DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ಸೈಟ್‌ಗಳಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ 🔥 DDoS ರಕ್ಷಣೆ, VPS VDS ಸರ್ವರ್‌ಗಳೊಂದಿಗೆ ವಿಶ್ವಾಸಾರ್ಹ ವೆಬ್‌ಸೈಟ್ ಹೋಸ್ಟಿಂಗ್ ಅನ್ನು ಖರೀದಿಸಿ | ProHoster