‏הצגת רשומות עם תוויות דביאן. הצג את כל הרשומות
‏הצגת רשומות עם תוויות דביאן. הצג את כל הרשומות

יום רביעי, מאי 06, 2026

It was not just an upgrade, it was a full on shit-show

אני שלושה שבועות אחרי שידרוג של P52 לדביאן טריקסי מדביאן 12, וזה הסיפור שלי.

לפני כן המערכת היציבה-ישנה עבדה הייטב כולל שימוש בדריברים הקניינים של נוידיה בתוך דביאן 12.

לפני ששידרגתי, בדקתי חלק גדול מהשימושים שלי בתוך מכונה וירטואלית וראיתי כי מרבית הצרכים שלי עדיין עובדים ומתפקדים, בדקתי דברים כמו PIM, שימוש ב pidgin, שימוש  ב flatpak, ששימוש במערכות תקשורת מסוימות, עבודה עם דפדפנים ועוד דברים אחרים. 

למה עברתי לטריקסי ? כי טריקסי היא המערכת הייציבה כרגע, אנחנו כבר מעל חצי שנה מאז שזה יציב, הבנתי שהגיע הזמן שאתחיל להתקדם, בדיעבד זו הייתה טעות, נכון לעכשיו דביאן טריקסי זה פשוט שיט-שאו למשתמש kde מממוצע שצריך נוידיה ובלוטות. לפני השדרוג אני עברתי על ההודעות של מה נשבר ומה ישונה ובעוד הנושא של write כן הוזכר , היו דברים אחרים שלא הוזכרו.

דבר ראשון הממשק הגרפי להתבחרות (DM) עבר ל tty2 שזה די מציק אבל אפשר לחיות איתו.

 ניסיתי את האפשרויות הבאות :
1. הגדרה של MinimumVT=7   - לא עובד כי זה מכובה.
2. ניסיון הגדרה של TTYPath=/dev/tty7 ע"י systemctl edit sddm .

אנשים אחרים התלוננו על זה גם כן https://www.linuxquestions.org/questions/linux-software-2/can%27t-get-sddm-off-vt2-in-neon-testing-4175716540/ או https://forums.opensuse.org/t/xorg-running-on-vt2-why/168900 ו https://bugs.gentoo.org/920955 לבנתיים אני מבין שאין מה לעשות כלל.

מערכת הקול עברה מ pulseaudio ל pipewire, למרות שpipewire טוענים כי זה drop-in זה ממש לא! זה ממימוש מחדש עם ארגומנטים שונים ומודולים בשמות שונים!. המערכת עלתה ללא שגיאות אולם לא היה קול כלל. לאחר דיבוג מצאתי כי הבעייה הייתה כי במהלך השדרוג התיקייה /etc/pulse שלי לא התעופפה וpipewire-pulse לא מסוגל לעלות עם יש שימוש בקונפיגורציה שמשתמשת בהעברת קול דרך רשת כלומר בקובץ client היה לי את  default-server = 127.0.0.1
ובdefault היה לי את load-module module-native-protocol-tcp auth-anonymous=1 auth-ip-acl=127.0.0.1
ב pipewire-pulse המודל module-native-protocol-tcp מקבל הגדרות אחרות ולכן זה נכשל. ממה שהצלחתי להבין לא ניתן לקבל את אותה ההתנהגות כמו שהייתה לפני כן.

קול בבלוטות כברירת מחדל לא מגיע גם לאחר ביצוע peering : 

השגיאות הבאות נראות בdmesg:
Bluetooth: Unknown BR/EDR signaling command 0x16
Bluetooth: Wrong link type (-22)
Bluetooth: Unknown BR/EDR signaling command 0x16
Bluetooth: Wrong link type (-22)

הmic והיציאה האוטומטית שהיו מופעלים פעם ב pulseaudio לא קופצים כלל.

שימוש בsimultanius עבר למודל בשם https://docs.pipewire.org/page_pulse_module_combine_sink.html תחת https://docs.pipewire.org/page_man_pipewire-pulse-modules_7.html

הגדרות של השימוש האחרון ב pulse לא נשמרות, כלומר אם אני משאיר כברירת מחדל הכל מכובה, לאחר הפעלה זה פתוח.

העברת קבצים בבבלוטות נשברה:

obex נשבר בעהברת קבצים תחת פלסמה , מדובר חלק מ https://github.com/blueman-project/blueman/issues/2925 ביחד עם  https://bugs-devel.debian.org /cgi-bin/bugreport.cgi?bug=1087689 ביחד עם  https://forums.debian.net/viewtopic.php?t=163590 ביחד עם https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1123793

מה שניסיתי היה התקנת evolution-data-server , ניסיון לרדת לגסה ישנה של bookworm של bluez ו bluez-obexd בשביל לראות אם אני מצליח לקבל או לשלוח קבצים,  אפילו הפעלה בודדת של   /usr/libexec/bluetooth/obex  אפשרה לי לקבל או לשלוח קבצים.

אני משתמש ב nvidia , ואני חוטף את הבעיות הבאות שיש עכשיו עם הדריברים של נוידיה בדביאן:

כאשר עובדים עם plasma-wayland העברת ל tty אחר וחזרה לגרפי מעבירה את המסך למסך שחור בלבד, ואפילו רצח והפעלה חיצונית של plasmashell לא עוזרת, כלל הסביבה הגרפית הולכת פיפפן, הפתרון שמצאתי הוא שימוש ב isolate multi-user ואז isolate graphical (כן זה רוצח הכל!), בקיצור wayland לא שמיש לחלוטין במקרה של שימוש ב nvidia עם צריך לעבור ל ttyים מדי פעם, לא ברור מי אשם אבל זו המציאות. שימוש רק ב X עושה את העבודה.

ריסוק תמידי של nvidia-drm. זה נראה כך:

 WARNING: CPU: 11 PID: 26355 at /var/lib/dkms/nvidia-current/550.163.01/build/nvidia-drm/nvidia-drm-drv.c:1226 nv_drm_revoke_modeset_permission+0x327/0x340 [nvidia_drm]
 Modules linked in: snd_usb_audio snd_usbmidi_lib hid_logitech_hidpp snd_rawmidi ccm nvidia_uvm(POE) snd_seq_dummy snd_hrtimer snd_seq snd_seq_device overlay qrtr uhid rfcomm cmac algif_hash algif_skcipher af_alg bnep cuse nvidia_drm(POE) drm_ttm_helper ttm drm_kms_helper nvidia_modeset(POE) nvidia(POE) ip6t_REJECT nf_reject_ipv6 xt_hl ip6t_rt ipt_REJECT nf_reject_ipv4 xt_LOG nf_log_syslog nft_limit xt_limit xt_addrtype xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables binfmt_misc nls_ascii nls_cp437 vfat fat snd_sof_pci_intel_cnl snd_sof_intel_hda_generic soundwire_intel soundwire_generic_allocation soundwire_cadence intel_uncore_frequency intel_uncore_frequency_common snd_sof_intel_hda_common snd_soc_hdac_hda snd_sof_intel_hda_mlink snd_sof_intel_hda snd_sof_pci snd_sof_xtensa_dsp snd_sof iwlmvm x86_pkg_temp_thermal snd_sof_utils snd_soc_acpi_intel_match snd_soc_acpi intel_powerclamp soundwire_bus coretemp kvm_intel snd_soc_avs snd_hda_codec_realtek snd_soc_hda_codec
  mac80211 snd_hda_codec_generic snd_hda_ext_core kvm snd_hda_codec_hdmi snd_soc_core snd_hda_scodec_component mei_pxp mei_hdcp uvcvideo snd_ctl_led libarc4 snd_compress joydev snd_pcm_dmaengine videobuf2_vmalloc intel_rapl_msr uvc snd_hda_intel videobuf2_memops irqbypass snd_intel_dspcfg btusb videobuf2_v4l2 iwlwifi snd_intel_sdw_acpi rapl btrtl videodev snd_hda_codec processor_thermal_device_pci_legacy btintel intel_cstate processor_thermal_device snd_hda_core btbcm processor_thermal_wt_hint videobuf2_common btmtk snd_hwdep processor_thermal_rfim intel_uncore mc snd_pcm thinkpad_acpi think_lmi processor_thermal_rapl intel_wmi_thunderbolt firmware_attributes_class bluetooth cfg80211 wmi_bmof ee1004 elan_i2c pcspkr nvram intel_rapl_common processor_thermal_wt_req sparse_keymap mei_me snd_timer platform_profile processor_thermal_power_floor ecdh_generic mei processor_thermal_mbox snd intel_soc_dts_iosf intel_pch_thermal soundcore rfkill intel_pmc_core ac int3403_thermal intel_vsec int340x_thermal_zone
  pmt_telemetry int3400_thermal pmt_class acpi_thermal_rel acpi_pad button sg evdev msr parport_pc drm ppdev lp parport nvme_fabrics nvme_keyring loop efi_pstore configfs nfnetlink ip_tables x_tables autofs4 ext4 crc16 mbcache jbd2 btrfs dm_crypt dm_mod raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic raid1 raid0 md_mod hid_generic sd_mod usbhid hid crct10dif_pclmul crc32_pclmul crc32c_intel ahci ghash_clmulni_intel libahci sha512_ssse3 xhci_pci rtsx_pci_sdmmc xhci_hcd libata sha256_ssse3 ucsi_acpi mmc_core nvme sha1_ssse3 typec_ucsi aesni_intel usbcore scsi_mod nvme_core psmouse intel_lpss_pci typec i2c_i801 gf128mul video intel_lpss crypto_simd e1000e cryptd rtsx_pci roles serio_raw nvme_auth i2c_smbus idma64 scsi_common usb_common battery wmi efivarfs
 CPU: 11 UID: 1000 PID: 26355 Comm: krdc Tainted: P        W  OE      6.12.73+deb13-amd64 #1  Debian 6.12.73-1
 Tainted: [P]=PROPRIETARY_MODULE, [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
 Hardware name: REMOVED_FOR_PRIVACY_REASONS
 RIP: 0010:nv_drm_revoke_modeset_permission+0x327/0x340 [nvidia_drm]
 Code: fd ff ff 49 8d bc 24 70 01 00 00 e8 a3 65 53 cc e9 57 fd ff ff 49 8d bc 24 70 01 00 00 89 04 24 e8 7e 51 53 cc 8b 04 24 eb 9c <0f> 0b e9 d0 fd ff ff b8 ea ff ff ff e9 4c fd ff ff e8 d3 c9 52 cc
 RSP: 0018:ffffcf86c7f03a88 EFLAGS: 00010246
 RAX: 0000000000000000 RBX: ffff88f96c316c00 RCX: ffffffffc102bcc2
 RDX: 0000000000000004 RSI: 0000000000000000 RDI: ffff88f8d2209170
 RBP: ffff88f9178c7848 R08: ffff88f9178c7848 R09: 0000000000000000
 R10: ffffcf86c7f03a50 R11: 0000000000000000 R12: ffff88f8d2209000
 R13: ffff88f96c316ce0 R14: ffff88f96c316ce0 R15: dead000000000100
 FS:  00007ffad862b3c0(0000) GS:ffff890433f80000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 00007ffad642e000 CR3: 0000000264302004 CR4: 00000000003726f0
 Call Trace:
  <TASK>
  drm_file_free+0x218/0x270 [drm]
  drm_release+0x5e/0xd0 [drm]
  __fput+0xde/0x2a0
  __x64_sys_close+0x3c/0x80
  do_syscall_64+0x82/0x190
  ? tomoyo_init_request_info+0x99/0xc0
  ? tomoyo_path_number_perm+0x8c/0x1f0
  ? drm_dev_enter+0x1d/0x60 [drm]
  ? drm_ioctl_kernel+0xad/0x100 [drm]
  ? __check_object_size+0x50/0x210
  ? _copy_to_user+0x36/0x50
  ? drm_ioctl+0x2a1/0x4d0 [drm]
  ? __pfx_nv_drm_get_dev_info_ioctl+0x10/0x10 [nvidia_drm]
  ? arch_exit_to_user_mode_prepare.isra.0+0x16/0xa0
  ? syscall_exit_to_user_mode+0x37/0x1b0
  ? do_syscall_64+0x8e/0x190
  ? arch_exit_to_user_mode_prepare.isra.0+0x16/0xa0
  ? syscall_exit_to_user_mode+0x37/0x1b0
  ? do_syscall_64+0x8e/0x190
  ? arch_exit_to_user_mode_prepare.isra.0+0x16/0xa0
  ? syscall_exit_to_user_mode+0x37/0x1b0
  ? do_syscall_64+0x8e/0x190
  ? arch_exit_to_user_mode_prepare.isra.0+0x16/0xa0
  entry_SYSCALL_64_after_hwframe+0x76/0x7e
 RIP: 0033:0x7ffadf2a69ee
 Code: REMOVED_FOR_PRIVACY_REASONS
 RSP: 002b:00007fff284abce8 EFLAGS: 00000246 ORIG_RAX: 0000000000000003
 RAX: ffffffffffffffda RBX: 00007ffad862b3c0 RCX: 00007ffadf2a69ee
 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000011
 RBP: 00007fff284abd60 R08: 0000000000000000 R09: 0000000000000000
 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff284abeb0
 R13: 000055ce0f9e3960 R14: 0000000000000000 R15: 0000000000000011
  </TASK>
 ---[ end trace 0000000000000000 ]---


מה שניסתי היה:

1.הסרת nvidia-drm.modeset=1 מ
GRUB_CMDLINE_LINUX_DEFAULT , בנייה מחדש, לא עזר.

הוספת nvidia-drm.modeset=0

שינוי ל nvidia-drm.modeset=1  nvidia-drm.fbdev=1

2. ניסיתי לעלות כאשר יש לי תחת /etc/modprobe.d/nvidia-wayland.conf את האלמנטים הבאים:

options nvidia-drm modeset=1
options nvidia-drm fbdev=1

אם ובלי nvidia-drm.modeset=1 בעת עליית הקרנל.

3. לקחתי את הגרסה מtrixie-backports , גם כן הריסוק קיים. הגרסאות הבאות נבדקו : 
535 , 550 .
גרסת ה 580 כרגע לא יצאה אז אני לא יכול לבדוק אותה גם כן.

כיבוי ואיתחול מאוד איטי , מספר דקות לכיבויי.  באג פתוח בדביאן על זה כבר מספר חודשים. https://bugs-devel.debian.org/cgi-bin/bugreport.cgi?bug=1110563  , וודאתי כי הסרת חבילות nvidia-driver וחבילות nvidia-detect ומעבר לגרסת הדריבר החופשי פותרת את הבעייה. 

ההצעה שראיתי כרגע היא שימוש בחבילות שנודיה עצמם מוציאים, אבל אני חושש להתקין אותן כרגע.

עריכה: מה שעשיתי היה להסיר כל מה שקשור לנוידיה מהמערכת להגדיר את תולעת ספרים כהפצה, להתקין את החבילות משם ולאתחל, כן זה מייצר לנו פראנקן-דביאן אבל זה מאפשר כיבוי נורמאלי ולא מחייב עליית טמפ גבוהה מדי בשימוש רגיל.

תקיעה של krunner תחת wayland אחרי ההפעלה הרביעית, כלומר אם מפעילים את krunner ארבעה פעמים בפעם החמישית החלון בו אמורים להכניס את הפקודה לא קופץ. כאשר זה קורה מספיק להרוג את krunner וזה משתחרר וחוזר חלילה. כאשר משתמשים ב x11 הבעיה לא קיימת כלל. דיברתי עם אנשים בערוץ התמיכה ויכול להיות שזה קשור לנוידיה. בגדול קיימת אפשרות להפעיל את krunner ע"י משיכת העכבר לפינה, אבל זה עובד רק עם plasmashell מתפקד, הבעיה היא שאם הוא מתרסק (וזה קורה כי זה החיים) לא ניתן לעשות זאת. מצאתי פתרון בייניים של עריכת קובץ ה service של krunner ע"י systemctl --user edit plasma-krunner.service ואז הוספת Environment="QT_QUICK_BACKEND=software".

ציור איטי יותר של וידאו כאשר מחוברים ב wayland ל virt-manager, ב x11 לא ראיתי כלל בעייה. הקול עובר בצורה הנכונה. הדבר נדרש כאשר צופים בהרצאות מתוך מכונה וירטואלית המריצה פדורה. תוכן המכונות לא שונה בכוונה לפני השדרוג.

דברים פחות חמורים:

העתקה מתוכנות הכתובות ב GTK ב ssh -X נשברת אם יש יותר משורה אחת, למשל עם פותחים hexchat תחת ssh -X ומעתיקים יותר משורה אחת אז הסימון של השורה השנייה והגלילה נשברים. 

ה theme של sddm שהוא debian-breeze בעל רקע לבן ולא רואים מה כתוב, מספיק למחוק את /usr/share/sddm/themes/debian-breeze/theme.conf.user וזה פותר את הבעיה.

שינוי איך wall מתנהג, לכן הודעות broadcast לא מוצגות יותר בטרמינלים, הדרך שמצאתי לתקן זאת הוא לכתוב ישירות ל /dev/pts המתאים בשביל להציג הודעות, זה עקום אבל עובד כמו שצריך.

המכולות שלי תחת podman העיפו לי הודעת שגיאה לגבי vfs , מכיוון שלא היה לי באמת כוח להתחיל לקנפג את podman ולהגדיר במדוייק איזה דרייבר להשתמש , העפתי את כל המכולות שלי ובניתי אותם מחדש מאפס ( את ה imageים עצמם). 

לא ניתן לצמצם בחלון הנוטיפקציות בפלמסה לפי שם האפליקציה, לכן עם היו לכם 50 הודעות מתוכנה אחת, צריך לגלול מטה ולא כמו ב פלסמה 5 פשוט להקטין את כלל ההודעות הללו.

שמות הכוננים ב nvme השתנו, זה משהוא שהייתי מצפה לראות עם /dev/sd* וממש לא nvme ,כן אני יודע שצריך להשתמש ב UUID , אבל זו הפעם הראשונה שראיתי זאת, וזה קורה בין איתחולים שונים !

לסיכום, לבנתיים לא הייתי ממליץ לאיש לשדרג מ 12 ל 13 כלל אם משתמשים ב P52 וצריכים את הדברים שאני הזכרתי מעלה.

יום שישי, מרץ 06, 2026

כל הכבוד ל guido התרעות ה CB חזרו לעבוד עם modem-manager ו phosh 0.46

שאפו ענק לגווידו גונתר , מספר שעות אחרי דיווח באג שהתראות מסוג CB הפסיקו לעבוד , הוא שיחרר שני תיקונים שוגרמים לזה לחזור לעבוד.
 
הבאג היה שפתאום המערכת אצלנו הוסיפה פאדינג של 00, מה ששבר את הפיענוח הקיים.
מה שקרה שההתראה הראשונה בשבת הופיעה, אולם ההתראות האחרות אחריה והתראות השחרור לא הופיעו על המסך ב phosh.
 
הפוסט הזה קשור לאנשים שמשתמשים ב modemmanager  ו phosh , כלומר מכשירי האורן (pinephone) ו חמישיה חופשית (librem5).
 
על מנת לקבל את ה צריך למשוך את הפאטצ' הזה על מנהל המודם.
גם למשוך את השינויים של פוש .
 
על מנת לקבל את השינויים בphosh  מספיק לבצע apt-get source phosh  וגם clone ל #123 ואז להפעיל dpkg-buildpackage -us -uc בשביל לבנות את החבילה. כאשר בונים את החבילה יכול להית שהקומפיילר יתעופף (כמו שהיה אצלי) , לא לחשוש ולנסות שוב , זה כנראה משהוא שקשור לעבודה שאני בניתי את זה ישירות על הטלפון.
 
על מנת להתאים את הפאטצ' במנהל המודם  צריך להשתמש ב quilt  ולבצע מספר שינויים מקומיים.
 
פאטצ' הquilt החלקי שלי  מול דביאן יציב היה  :
 
 
 
cat mm-cbm-part-convert 
Description: partial apply of https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1432/diffs?commit_id=3745ab3b296293908bc4000f893485edec03be7d
 This is a partial apply to unblock CB by using guido's code from https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1432/diffs?commit_id=3745ab3b296293908bc4000f893485edec03be7d
Author: Guido Gunter
Origin: upstream, https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1432/diffs?commit_id=3745ab3b296293908bc4000f893485edec03be7d
Reviewed-by: Boris Shtrasman <user@example.com>
Last-Update: 2026-03-04
---
This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
--- a/src/mm-cbm-part.c
+++ b/src/mm-cbm-part.c
@@ -190,9 +190,24 @@
                                log_object,
                                error);
     if (!text) {
+        int i;
+        for (i = len; i > 0; i--) {
+            text = mm_sms_decode_text (&pdu[offset],
+                                       i,
+                                       cbm_part->encoding,
+                                       0,
+                                       log_object,
+                                       NULL);
+            if (text) {
+                break;
+            }
+        }
+    }
+    if (!text) {
         mm_cbm_part_free (cbm_part);
         return NULL;
     }
+    g_clear_error (error);
     cbm_part->text = g_steal_pointer (&text);
 
     return cbm_part;

הבדל חשוב שאני לא משתמש ניהול הזכרון החכם שגוידו השתמש בו, מכיוון שרציתי לבצע את המינמום השינוים שיש ,כפי שרואים אני גם לא הוספתי את קוד הבדיקות (כי התעצלתי). 
 
הוספתי גם מקטע ב chanelog ויצרתי תת גרסה חדשה 1.24.0-1+deb13u2 חשוב תמיד לדאוג לשים תת גרסה "עדכנית" יותר, אבל גם לזכור שכשיהיה גירסה חדשה לדאוג לבצע התקנה בכוח (כי אם מישהוא אחר ייצר בדיוק את הגרסה הזאת כברירת מחדל זה  לא יותקן).
 
לאחר שנשמר ה changelog והquilt אפשר לבנות את החבילה שוב פעם עם  buildpackage -us -uc.
 
כאשר אנחנו צריכים לשנות חבילות דביאן אנחנו משתמשים ב quilt https://wiki.debian.org/UsingQuilt , אבל כאשר משנים את ה changelog בדר"כ רק משנים את זה ב git. אבל מכיוון שפה זה על המחשב לשי בלבד לא הייתי צריך לשמור את השינויי הנוסף ב git.

עכשיו צריך שאיזה שהוא מפתח דביאן יאשר ויחבר את השינויים של פוש, ויעשה backport כמו שאני עשיתי למנהל המודם.
לי לא ברור האם דביאן ישארו תיקון באג כזה, אבל אני חושב שזה מאוד חשוב שזה ייצא בדחיפות.
 
נ.ב.
 
אני חושב שראיתי אנגלית, ערבית, רוסית(?) ועברית בהתראה על פוש, אם קיימות שפות נוספת אני פספסתי.
כאשר המסך נעול ב 0.46 , אז הודעת ה CB מוצגת בחצי מסך , וצריך למשוך אותה מעלה בשביל לקרוא את כל ההודעה.
 
ההודעה הראשונה בשבת , הופיעה ללא בעייה, עם התיקונים הללו גם הודעת השחרור וגם הודעת האזהרה מופיעות כמו שצריך. 
 
 

יום רביעי, אוגוסט 13, 2025

apt-mirror: Err:12 http://repo/pub/debian bookworm/main all Contents (deb)

היו לי היום מספר בעיות מעניינות על אחד משרתי ה apt-mirror, זה התחיל מזה שראיתי את השגיאה הבאה כאשר ניסיתי לבצע apt-get update
Err:12 http://repo/pub/debian bookworm/main all Contents (deb)
  404  Not Found [IP: 10.2.14.11 80]
לאחר שבירת ראש קצרה , הבנתי שנתקלתי בבאג ידוע שיש לו פתרון, אבל מכיוון שלא הלכתי לשדרג את השדרת הזה עשיתי מעקף די פשוט,  הכנסתי את הארכיטקטורה all כארכיטקטורה נדרשת במשיכה, כלומר:
  deb-all https://deb.debian.org/debian/ bookworm main contrib non-free non-free-firmware
  
כן , אני יודע זה עקום, אבל זה מעקף טוב יותר מאשר לבצע את ה backporrt  של הפאטצ' בתיקון למעלה. ולא, אין התיקון של הבאג כזה כתיקון לחבילה apt-mirror אחרונית ל bookworm למרות שזה יצא ב 2022.

לאחר מכן התעניינתי , למה לא להוסיף את deb-src לכל המקורות אותם אני מושך ? טוב אז כשהוספתי התחלתי להקבל את השגיאה המדהימה הבאה :
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 973.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 974.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 975.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 976.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 977.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 978.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 979.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 980.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 981.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 982.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 983.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 984.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 985.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 986.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 987.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 988.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 989.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 990.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 991.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 992.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 993.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 994.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 995.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 996.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 997.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 998.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 999.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 1.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 2.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 3.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 4.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 5.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 6.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 7.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 8.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 9.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 10.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 11.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 1.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 2.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 3.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 4.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 5.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 1.
Use of uninitialized value $lines{"Files:"} in split at /usr/bin/apt-mirror line 920, &gr;STREAM< line 2.
SPPPPPP]
  
זה קרה כאשר הוספתי אתה השורה הבאה לרשימת המאגרים אותם אני מגבה.
    deb-src https://deb.debian.org/debian/ bookworm-proposed-updates main contrib non-free non-free-firmware
    
אני מניח שזה קורה בגלל שזה לא משהוא שקיים עבור התיקייה הזאת. 
 
עכשיו, למי שיגיע ויומר שפרוייקט apt-mirror לא מתוחזק יותר מדי על המידע, ומחפש מפתחים חדשים, אני יודע, אני יודע, אבל זה הדבר הכי טוב שיש לנו כרגע. 


וכן אני מודע לפדיחה העצומה שיש בהקשר הזה שמחקים חודשים שמפתח דביאן שאורז את החבילה שיגיב בנושא הפורק, זה ידוע לי. וזה עדיין הדבר הכי טוב שיש לנו פה.

יום ראשון, אוגוסט 10, 2025

דביאן טריקסי הפך ליציב אז חוגגים את יציאת הגרסה, וזו סיבה למסיבה! יש אפילו מפגש ברמת גן למי שיהיה באזור

בשעה טובה פרוייקט דביאן הוציא גרסה חדשה,אם מקורות ה apt שלכם הצביעו ל stable צריך או לעדכן את המיקום אם לא משדרגים או לשדרג את המכונה למערכת החדשה.

מה חדש ? יש רשימה די רצינית של שינויים שצריך לעבור אליהם.

מה חשוב לי שם ?  השבירה של אקונאדי במקרים מסויימים, השינוי של resolve.conf

זהוא , החיים הפשוטים של לעדכן את קובץ ה /etc/resolv.conf נגמרו סופית, עכשיו זה resolvectl וזהוא. זה חלק המחיים שדברים עוברים שינויים, יש די הרבה ייתרונות בשיטה של DNS פר קישור במקום שרצים להכל, זה נותן יכולות מסויימות בצורה מאוד טובה האמת, זה גם פותר את הבעיה בה לא ייכלנו להתחבר לשרתי mms של ספקי טלפוניה בזמן חיבור לויפי למשל, אבל לשינויי יש מחיר שדורש התאמות ויש צורות עבודה שנשברו בדרך, למשל חלק ממערכות ה vpn הקנייניות שאיתם אני עובד לא מסוגלים לעבוד בצורה הזאת כלל, וצריך עכשיו פתרון עבור זה. בעולם אידאלי , הם היו מוציאים גרסה שיודעת לעבוד עם זה, אבל זה העולם האמיתי.

במערכות VPN שיש בהם סרקיפטים מספיק לשנות את הכתיבה ל resolve.conf להתאמה לשימוש ב resolvctl אבל בבינארים שלא מגיעים מבחוץ  ? זה יהיה תענג למצוא איך אני משנה את הבינארי או נותן פתרון לעבודה כזאת.  במקרי של קבצי jar , אז זה לא באמת סיוט כי אפשר לפתוח די בקלות, לבצע דקומפילציה לקוד, לדחוף קריאה במקום של הכתיבה לresolv.conf את הדקומפיציה אפשר לעשות עם jd-cli (שהאמת לא השתמשתי בו בשנים) , בקובץ שנוצר שאתם רואים שהוא עובד על קובץ ה resolv.conf צריך לכתוב פונקציה פשוטה שתפרסס את התוכן ותבצע קריאה ל resolvectl לחלופין ניתן להפעיל תסריט חיצוני, לאחר מכן לבנות מחדש ולארוז מחדש את ה jar (תזכרו להשתמש בכלים פתוחים, כן ? ).

מה הבעיה עם אקונדי ? זה רק המנוע של לקוח הדוא"ל שלי . כן כן אני יודע שזה לא בסדר שאני לא מריץ שרת מייל משלי עם postfix ו curior ואולי אפילו dovecot, כן ,הסנדלר הולך יחף, יודע !. מה היא הסיבה העיקרית שאני לא מריץ שרת כזה ? כתובת IPv4 קבועה, דומיין בבעלותי ויותר מדי זמן פנויי, רק זה חסר בשבילי ;-).

לבנתיים אני כבר מעודכן בשרת המראה הפרטי שלי גם עבור גרסת טריקסי, גרסת טריסקי הצטרה אצלי למאגרים של באסטר, בול במטרה ותולעת ספרים. ועכשיו הגעתי לכמעט טרה בייט על השרת האישי שלי בבית. אני אישית משתמש ב apt-mirror בשביל זה,  וכן אין לי עדיין רפו עבור מכונות פדורה עדיין, למרות שרצויי שאפעיל אותן בהקדם הנדרש.

נכון לעכשיו שרתי איגוד האינטרנט אינם מכילים יותר את דביאן לצערי, לכן אנחנו צריכים להשתמש בשרתי deb.debian.org למשל בשביל לשלוף את העדכונים, מתקינים מאפס ? תורידו את ה DVDים של זה, ועדיף אפילו בטורנט ותשאריו את זה חיי כמה שפשר, ככה אתם תשתפו את רוחב הפס שלכם עם כל אדם שיירצה להוריד את ה DVD של דביאן ותעלו את המהירות עבור כולם.
 
 
אבל מה הכי חשוב ? השבוע יש מפגש דביאן לחגוג את הגרסה, יש שם אכלה עוגיות ממה שאני זוכר.

למקום תעודת כשרות בהשגחה רגילה, ממה שאני זוכר המקום נגיש לאכילה למגיאים בכסא גלגלים, ניתן להזמין ללא ידעת השפה הצרפתית.

לא יכולים לחגוג ברמת גן ? אז יש עוד הרבה מאוד מקומות אחרים בעולם החוגגים זאת!

יום שלישי, נובמבר 26, 2024

If you are using Dell's Sonicwall netextender vpn client on linux, do not update the client software ,instead use the the version you have from your router, run it inside a VM, that way even if you upgrade the VPN firmware you could always use the correct version for it

אם יש לכם לקוח VPN של דל, יש בעייה ידוע בלקוח של לינוקס בגרסה מ2024 שהיא מפסיקה לעבוד, הגרסאות העדכניות מכילות תיקוני אבטהה, אבל מצד שני הלקוח מתחרפן, ולא ניתן להשתמש בו יותר. לאנשים הנחמדים שאמרו שאנשים צריכים להחליף את ה VPNים שלהם לגריסה משנת 2024, או להתקין VPNים OpenVPN ו wiregaurd, תודה, אתם צודקים, אני לא יכול לבחור את החומרה שרצה למי שצריך להתחבר בשביל לעזור לו.

המכשירים של Sonicwall כל כך פופלארים, שאפילו רופאי השיניים בשכונה יש להם את זה במשרד, גם למכון טיפולים משמרים יש כאלה, המכשירים האלה היו אמינים, זולים ודי פשוטים שזה היה entry-level למשרדים קטנים.

הפתרון שאני מצאתי זה (די מזמן) הוא להתקין את לקוח הלינוקס שלהם במכונה וירטואלית, לשים חוק systemd שמעלה את התהליך שלהם, ושרת openvpn  על המכונה הוירטואלית הזאת.

הservice שלי נראה כך:
[Unit]
Description=SSLvpn
After=network-online.target
Wants=network-online.target
StartLimitIntervalSec=5s
StartLimitBurst=10

[Service]
#ype=oneshot
RemainAfterExit=yes
ExecStart= screen -Dm /bin/bash -c "echo Y | \
 /home/user/Downloads/netExtenderClient/netExtender\
 -u vpnuser -p SuperSecretPasswordYoushouldNeverKnow \
-s 142.250.75.193:4433 -d myrtfm.blogspot.com -M 500" User=user Group=user Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target

שימו לב שה MTU פה ממש נמוך, וזה נבחר כדבר היחיד שהצלחתי לעבוד איתו עם הרשת שלי, במקרה שלכם זה יכול להיות גבוהה יותר וערך נורמאלי.

בצורה כזאת גם אם יש איזה שהיא בעייה בצד הלקוח, אין השפעה על המחשב המארח.
הOpenVpn שרץ על המחשב הוירטואלי אחראי להעביר את כל התעבורה.

במחשב הפרטי שלי אני מפעיל את ה VM , מפעיל לקוח openvpn שמתחבר לVM, ואז יש לי גישה מלאה לרשתות אותם לקוח ה SonicWall נתן.

הבעיה העקירית היא שצריך לדחוף את הרשתות שהתקבלו בSonicWall דרך ה OpenVPN, אני פתרתי את זה ע"י כתיבה פיזית לקובץ ההגדרות פעם אחת (ולא עידכון אוטומטי) , עשיתי זאת כי אצלי הרשתות לא משתנות יותר מדי, ואין באמת צורך לבצע propogation במקרה שלי.

דרך אגב, אם יש לכם אפשרות תבקשו שהם יפעילו את ה IPSEC/L2TP להתחבר פנימה, זה עובד הרבה יותר נוח, זה עובד מהר יותר, לא דורש תוכנה נוספת וסגורה, וזה פשוט עובד ללא בעיות בלינוקס.

יום ראשון, אוקטובר 13, 2024

הידעתם ששרתי האיגוד הסירו את דביאן מהמאגרים שלהם ? גם אני לא ידעתי !

בדקתי התקנה ישנה של דביאן באיזה שרת , אני מנסה לעשות עידכון, ומה אני מגלה ? 

לא ניתן לעדכן אי הכתובת https://mirror.isoc.org.il/pub/debian לא נגישה יותר וזה הוסר, בדקתי גם באתר שמסביר על התוכן , וגם שם דביאן ועד מספר הפצות הוסרו.

תודה רבה שאירחתם במשך שנים, 

אז זהוא באמת סוג של So long, and thank you for the fish ?  כי אנחנו מזיזים את המאגרים לשרתים אחרים ?

יום חמישי, מרץ 21, 2024

I'm thrilled to see that the packge I contributed to in 2019, is now used in an offical guide at #switch2osm, now we only need just one external tool to #debian (carto) to be able to setup a self hosted #osm compatibale tile server #GIS, setup one while you can!

איזה כיף לראות  את החבילה ששלחתי לה פאטצים בשנת 2019 משומשת במדריך רשמי של switch2osm.

הסיפור היה שבשנת 2019 הרחוקה, החבילות שנתנו את renderd היו מחוץ לדביאן,  ובאופן כללי בתקופה ההיא החבילות הדרושות ל  OSM בדביאן לא היו ארוזות,  מה שדי תקע את האפשרות לשדרג מג'סי מעלה אם היה לכם שרת שמספק מרצפות (tile server),  אז רציתי לפתור את זה ושלחתי לי מספר טלאים (פאטצ'ים) , רק אחד מהם התקבל בסופו של יום. תודות לעבודתם הרבה של הרבה אנשים ב2020, החבילה נארזה ונכנסה לדביאן,כך היכולת לספק שירותי מיפויי מבוססים OSM בדביאן די חזרו, וכך מאז גירסת בול פגיעה החבילה libapache2-mod-tile שוב נמצאת בדביאן.

עברה תקופה די ארוכה מאז, אבל מה אני רואה היום בפיד ה  הRSS שלי ? הודעה על הגדרת שרת apache ביחד עם osm ,ואיזו חבילה אני רואה שם ? יאפ מה שתרמתי לה,  והתענגתי על העובדה שrenderd עדיין משומש וניתן להשתמש בו. ולמה זה חשוב ? כי בין ג'סי לבין בול פגיעה היכולת לספק שירותי מיפויי מבוססי OSM הייתה בעייתית בלשון המעטה.
 
המדריך שם מבקש להוריד את openstreetmap-carto  מקוד מקור בשביל לבנות את mapnik.xml שמשומש בrednerd, זאת למרות שהיום יש כבר את openstreemap-carto שאמור להביא את כל הדברים ישירות, לכן אנחנו עדיין לא הגענו לנחלה. לא בדקתי האמת אם אפשר להשתמש רק במה שהחבילה הזאת מספקת בשביל להרים סביבה,  נקווה שגם הדרישה הזאת תהיה מיותרת בקרוב,  פעם נדרשנו להוריד את libapache2-mod-tile אולי בקרוב פשוט נוכל להוריד את ה DVD של דביאן וקבצי התוכן של OSM ונהיה רגועים שזה פשוט יעבוד בלי שום תלויות נוספות.

עריכה: בדקתי ואת הקובץ mapnik.xml ניתן לקבל מתיקיית ה utils אם מורידים את קוד המקור של החבילה libapache2-mod-tile: 
apt-get source libapache2-mod-tile
Reading package lists... Done
NOTICE: 'libapache2-mod-tile' packaging is maintained in the 'Git' version control system at:
https://salsa.debian.org/debian-gis-team/libapache2-mod-tile.git
Please use:
git clone https://salsa.debian.org/debian-gis-team/libapache2-mod-tile.git
to retrieve the latest (possibly unreleased) updates to the package.
Need to get 1,387 kB of source archives.
Get:1 http://deb.debian.org/debian bookworm/main libapache2-mod-tile 0.6.1-2 (dsc) [2,230 B]
Get:2 http://deb.debian.org/debian bookworm/main libapache2-mod-tile 0.6.1-2 (tar) [1,372 kB]
Get:3 http://deb.debian.org/debian bookworm/main libapache2-mod-tile 0.6.1-2 (diff) [12.9 kB]
Fetched 1,387 kB in 1s (1,432 kB/s)            
dpkg-source: info: extracting libapache2-mod-tile in libapache2-mod-tile-0.6.1
dpkg-source: info: unpacking libapache2-mod-tile_0.6.1.orig.tar.gz
dpkg-source: info: unpacking libapache2-mod-tile_0.6.1-2.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying 0001-Use-VirtualHost-directive-configuration.patch

ואז פשוט להעתיק את הקובץ mapnik.xml לאן שצריך
cp utils/example-map/mapnik.xml /path/to/destination
 
הקובץ עצמו הוא ממש קטן (מה שיש בדביאן): 

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Map[]>
<Map background-color="#afc6e9" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
 <Parameters>
   <Parameter name="name"><![CDATA[It's a simple world]]></Parameter>
   <Parameter name="description"><![CDATA[Simplest CartoCSS style showing land cover of the world.]]></Parameter>
   <Parameter name="bounds">-180,-85.05112877980659,180,85.05112877980659</Parameter>
   <Parameter name="center">0,0,4</Parameter>
   <Parameter name="format"><![CDATA[png]]></Parameter>
   <Parameter name="minzoom">0</Parameter>
   <Parameter name="maxzoom">18</Parameter>
 </Parameters>
 <Style filter-mode="first" name="world">
   <Rule>
     <PolygonSymbolizer fill="#ffffff" fill-opacity="0.75" />
     <LineSymbolizer stroke="#dddddd" stroke-width="0.3" />
   </Rule>
 </Style>
 <Layer name="world" srs="+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over">
   <StyleName><![CDATA[world]]></StyleName>
   <Datasource>
     <Parameter name="file"><![CDATA[very_simplified_land_polygons.shp]]></Parameter>
     <Parameter name="type"><![CDATA[shape]]></Parameter>
   </Datasource>
 </Layer>
</Map>


ובאמת שזה לא סיפור לכוון אותו לכל מיקום אחר.

נכון להיום אני לא שידרגתי את המכונה שלי שמספקת את שירותי המיפויי, אז למה אני לא ממיר את המכונה המספקת שירותי OSM בשבילי מג'סי ? כי איכשהוא , מכיוון שזה פשוט עובד הרגשתי בטוח להשאיר אותו עובד. המחשב שם לא חשוף לאינטרנט וניתן לגשת לתכנים שלו רק מתוך הVPN שמופעל אצלי. אז לי אין פחד אבטחתי לאפאצ'י. שידרוג מג'סי לבאסטר יוביל לפגיע ושבירת הבסיס של renderd ואני ממש לא מעוניין לשבור את המערכת (מה שנקרה זה עובד אל תיגע).

אם משתמשים ב marble-qt כלקוח המפות שלכם, אתם יכולים לכוון להוריד את המפות ישירות מהשרת שלכם, בתאוריה זה אמור להיות המצב  גם  ב gnome-maps אבל לא הצלחתי לעשות זאת דרך /usr/share/gnome-maps/maps-service.json וגם לא דרך הפעלה של gnome-maps https://my-tile-server.local , ככה שבאורן עדיין ממשיכים להשתמש ב marble.

יום שבת, מרץ 02, 2024

הסבר על הפעלת שרת apt-mirror על דביאן מול שרתי איגוד האינטרנט, דרך פשוטה להחזיק שרת מראה אצלכם בבית ולחסוך בעלויות האינטרנט כשמתקינים מכונות וירטואליות או חבילות כבדות. לאחר שהתקנתם פשוט להגדיר את הכתובת אצלכם ולמשוך משם.

אני משתמש בדביאן, וככזה אני משתמש בשרתי מראה בשביל להתקין דברים, וכשאני צריך להתקין חבילות כבדות חיבור האינטרנט שלי סובל מזה (אני מחובר בחיבור ב4G), תמיד עדיף אילו מרבית החבילות היו מורדות מראש. כמובן שאת עידכוני הבטיחות אי אפשר לשמור כהעתק מראש (כי זה לא קיים), אבל מכיוון שבדביאן מרבית החבילות לא יישתנו לא שיחרור גירסה (אלא בהקפצה קטנה) אז התוכן הוא די ייציב.

ישנן הרבה דרכים לדאוג ולשמור על העתקים של חבילות אצלנו, אפשר להשתמש ב apt-cache-ng שיוסיף למאגר חבילות כל פעם שאנחנו מורידים חבילות דרכו, אפשר להשתמש ב reprepro ובו שווה להשתמש אם יש לנו חבילות משלנו ואפשר להשתמש ב apt-mirror.  אני בוחר שלא להעתיק את כל התוכן שיש בשרתי המראה אלא רק תוכן שאני רוצה ולתצורת החומרה שאני רוצה, הרי אם אני לא הולך להתקין על sparc אין טעם שאני אחזיק חבילות עבור המעבד הזה. יש כמובן את debmirror אבל הוא נכשל אצלי מול שרתי איגוד האינטרנט.

התקנת והגדרת apt-mirror היא די פשוטה וכל מה שצריך זה :
  sudo apt-get install apt-mirror
  
אחרי זה הגדרת השרת , להייכן לשים חבילות, איך לנקות ומה לקחת. אתה זה עושים בתוך הקובץ
/etc/apt/mirror.list 
אני בחרתי לשמור את הקבצים תחת /media/storage/apt ולא על /var/spool/apt-mirror (ממש לא חייבים לשנות את זה).

לכן קובץ ההגדרות נראה כך:
  cat /etc/apt/mirror.list 

set base_path    /media/storage/apt/
set nthreads     20
set _tilde 0
deb https://mirror.isoc.org.il/pub/debian bullseye main contrib non-free
deb-src https://mirror.isoc.org.il/pub/debian bullseye main contrib non-free
deb https://mirror.isoc.org.il/pub/debian bullseye-proposed-updates  main contrib non-free
deb https://mirror.isoc.org.il/pub/debian bullseye-backports  main contrib non-free
deb https://mirror.isoc.org.il/pub/debian bullseye-backports-sloppy  main contrib non-free
# mirror additional architectures
deb-amd64 http://mirror.isoc.org.il/pub/debian bullseye main contrib non-free

לאחר מכן, כל מה שצריך לעשות זה לכוון את שרת הווב שלנו ל base_path (אפשר אפילו עם לינק סימבולי). ולהפעיל לעצמכם את apt-mirror בשביל שימשוך את כל התוכן. כמובן שאפשר לכוון לא רק להפצת דביאן אלא לכל הפצת deb בצורה הזאת.

שם תראו משהוא כמו :
  Downloading 200 index files using 20 threads...
Begin time: 
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... 
End time: 

Processing translation indexes: [TTTTTTT]

Downloading 125 translation files using 20 threads...
Begin time: 
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... 
End time: 

Processing DEP-11 indexes: [DDDDDDD]

Downloading 45 dep11 files using 20 threads...
Begin time:
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... 
End time:

Processing cnf indexes: [CCCCCCC]

Downloading 0 cnf files using 0 threads...
Begin time:
[0]... 
End time:

Processing indexes: [SPPPPPPP]

0 bytes will be downloaded into archive.
Downloading 0 archive files using 0 threads...
Begin time:
[0]... 
End time:

0 bytes in 0 files and 0 directories can be freed.
Run /media/storage/storage/apt//var/clean.sh for this purpose.

Running the Post Mirror script ...
(/media/storage/storage/apt//var/postmirror.sh)

/bin/sh: 0: cannot open /media/storage/storage/apt//var/postmirror.sh: No such file

Post Mirror script has completed. See above output for any possible errors.
  
שימו לב שאני בחרתי שלא להפעיל את אמצעי הניקוי בכוונה, כי לפעמים שווה שיהיה עוד קבצים לייתר בטחון ואז לא נצטרך להשתמש ב snapshot בשביל לאתר את החבילה הטובה.

עידכון של המאגר ניתן לביצוע פשוט ב cron או אפילו בפעולה ידנית (ואני חסיד של עדכון ידני במקרה הזה).

בצד הלקוח אנחנו פשוט נספק את המסלול של שרת המראה כפי שהוא נראה מ apache או מ nginx בעת ההתקנה או אפילו ב /etc/apt/surces.list .

עריכה: על השרת שלי זה לוקח רק 253 ג"ב כאשר הבסיס (ללא backports ו updates למיניהם) לקח רק 173 ג"ב.

יום שלישי, פברואר 13, 2024

מצילים מערכת ע"י chroot במחשב מארח ? תוודאו שאם יש שימוש ב luks שהשם של מחיצת השורש יתאים למה שהיה קודם אחרת initramfs יתקע !

השבוע הצלתי מערכת דביאן לאחר תקלה תוכנה, לקחתי את הכונן מהמחשב הבעייתי ולקחתי אותו למחשב מארח ועליו התחלתי לתקן, התקנתי קרנל חדש, הסרתי חבילות, וציפיתי שהכל יעבור חלק ללא שום בעיות כשאני מחזיר את הכונן למחשב המקורי.

לאחר התקנת קרנל ובדיקה שהכל עובד ב chroot, לקחתי את הכונן למחשב  המקורי, ושם גיליתי שהמערכת נופלת ל shell ולא עולה, grub היה רואה את הכונן ומחיצת ה boot אבל כשה initramfs עלה הוא לא ביקש את סיסמת ה luks והגיע ל shell ההצלה (לאחר שחיכה די הרבה זמן).

לקח לי קצת זמן להזכר, אבל כאשר אנחנו מתקינים קרנל יש הפעלה של update-initramfs והיא עוברת על /dev.
עכשיו, עם פתחנו את הכונן עם luks על המחשב המארח ולא השתמשנו באותו השם שקיים כבר תחת /etc/crypttab מה שהולך להיות הוא שה update-initramfs ייכשל במהלך הבנייה אבל לא יכשיל את ההתקנה, התקנת הקרנל תצליח ותסיים את ההתקנה. במהלך ביצוע chroot אנחנו מעבירים את ה /dev של המחשב המארח לתוך ה chroot, והמערכת לוקחת את שמות ההתקנים מהמחשב המארח, וזה יכול להיות בעל שוני די גדול.

הפתרון די פשוט, צריך לוודא שהשם שיש תחת /etc/crypttab יהיה אותו השם איתו אנחנו פותחים בעלייה.
נפתח את הכונן בצורה רגילה נקרא את התוכן מהכונן המקורי ושם זה :
  cat /etc/crypttab 
   nvme0n1p1_crypt UUID=65c6f25f-40bb-300c-86a2-b0402340172d none luks,discard
  
השם פה הוא nvme0n1p1_crypt לכן אנחנו צריכים לסגור על ידי luksClose ואחרי זה לפתוח את הכונן המוצפן עם השם הזה הנכון.

עכשיו אם אנחנו משתמשים במתאם nvme ל usb, אנחנו נראה את ההתקנים כ /dev/sdx ולא כ /dev/nvme* , שזה המקור לבעייה בתיקון אצלי.

נניח והמחיצה מזוהה בממחשב המארח כ /dev/sdc8 אז צריך להתאים את השם בפקודה cryptsetup
sudo cryptsetup luksOpen /dev/sdc8 nvme0n1p1_crypt
עכשיו ה update-initramfs יוכל לזהות נכון את המקום במהלך ההתקנה , מפה או שמתקינים את הקרנל מחדש או שבונים ע" update-initramfs -c -k all וזה פותר את הבעייה.

יום שישי, דצמבר 01, 2023

אם אין אני לי מי לי, הגיע השעה להתכונן לבעיות , שזה כולל ניהול מאגרי חירום , אגירת מזון ומים שיוכל להדרש לשימוש ולא כל מה שיש בחנות עכשיו, החזרת מאגרי תוכנה והאמת הגיע הזמן להתקנת שרת רישום של פודמן פרטי ולשים שם את המכולות שלכם

בעברי ניהלתי מאגר חירום,  עכשיו בגלל המצב אני רואה שצריך לשחזר את הידע הזה, והאמת אני רואה היום הרבה אנשים שמנסים להתחיל את זה אצלהם בעסק,  ובדרך עושים טעויות של מתחילים שעולות הרבה מאוד כסף אבל תאחלס לא עוזרות במצב חירום.

במקור אני התחלתי להשתמש במערכת קניינית שמנהלת את מחסן, הייתה תוכנה יפה, אבל בסופו של יום מצאתי שניהול ע"י sqlite  ביחד עם ממשק פשוט עם קשרים פנימיים היה פשוט יותר.  בחלק מהמקרים הייתי משתמש אפילו בחוברות,אז לא היו לנו טאבלטים לנהל את המלאים כמו שיש היום, היה מחשב והיינו מדפיסים מלאים ומעדכנים את הדף ואחרי זה מחזירים את המידע למחשבים בצורה ידנית. היום פשוט סורקים בר קוד בשביל לעדכן, אבל אז לא היו את הטכנלוגיות הללו. נכנסתי ל sf וחיפשתי תוכנות ניהול , והאמת זה מצחיק שעבר כל כך הרבה זמן אבל עדיין אותם רעיונות בניהול מלאי קיימים גם היום.

עכשיו לפחות מדובר על ממשקים וובים אהבתי את storajii למרות שהיא לא מתחוזקת יותר וגם אהבתי מאוד את inventree.

הממשק של inventree מזכיר מאוד את המערכות שהייתי משתמש בהם לפני כמה שנים טובות, נראה שמאפשר לשמור מספר ייצרן אבל לא הצלחתי למצוא איך אפשר להוסיף את מספר ייצרנים לאותו הפריט.

המינוס העיקרי שראיתי שהיה בstoraji היה שהוא בנויי על גבי nodejs ולא ארוז בדביאן, מה שאומר שאפשר להתקע די מהר. מינוס עיקרי בinventree שגם הוא לא ארוז בדביאן.

תוכנות זה נחמד, אבל, במצב חירום הנחת הייסוד היא שאין חשמל, וכל מערכת ולא משנה עד כמה טובה אם היא דורשת חשמל היא לא שווה הרבה, לכן את המלאים מדפיסים ומצמידים לתוך תיקייה מנויילנת.  את המלאים צריך להכניס בצורת בהם המוצר שהתוקף שלו  פג הכי מוקדם יותר להיות הכי נגיש וכל הזמן בשימוש, מי שחושב להגיד FIFO אז לא , כי לפעמים מקבלים משהוא חדש עם פג תוקף קצר.

המלאים צריכים להיות *כל הזמן* באחזקה, אני הייתי מוודא ברמה שבועית כי המלאי למספר חודשים תמיד זמין. בכל פעם שמזמינים מלאי שימוש מוציאים ממלאי החירום ומחליפים ביניהם.

לדוגמא: מאגרי החירום מכילים 200 גרם קינואה ליום עבור כל אדם לחודש, כאשר רוכשים קינואה לשימוש יום יומי מחליפים ומוציאים את החבילה הישנה ביותר ומשתמשים בה ומחליפים מול המאגרים.
 
לוקחים את המזונות הנצרכים בכל יום רגיל, מוסיפים 30% ואת זה מכפילים בתקופה האחזקה (חודש, חודשיים .... ) חשוב להחזיק מזונות שונים (חיטה, קינואה , דוחן, כוסמת, אורז , שיבולת שועל). רצויי לאגור מזון תינוקות ואחרי זה ניתן להשתמש בזה כתוסף לקמח בשביל לייצר מזון שיוכל להזין ולספק את כלל המינרלים והוויטמנים הנדרשים.

קמחים, צריך להחזיק קמחים מסוגים שונים (טף , אפונה, כוסמין וכו') ומספר סוגי שמרים שונים במאגרים למצב חירום. עדיף להשקיע בקמחים שאינם בחבילות נייר, מניסיון שיט-האאפנס וחשוב שהקופסאות יהיו כמה שיותר עמידות.

כלל הדגנים צריכים להיות באריזות זכוכית או קרמקיה אטומות לאוויר, אני לא מצאתי הבדל מבחינת רביית מזיקים בין חבילות פלסטיק אטומות לבין זכוכית, ככל שהחבילה גדולה יותר, כשיש מזיקים שמגיעים בחבילות חבילה גדולה יותר נפגעת, הפתרון הזול ביותר שהגעתי אליהם בעבר היה שימוש במיכלי 3 ליטר שקופים.

מי שתייה: צריך לאגור מי שתייה שעברו סינון והרתחה ולא מי ברז ישירות, ככה אתם מקטינים את הסיכויי לגדילת אצות ושבלולי מים מתוקים, נכון שהפעם האחרונה שהיה לנו מקרי בלהרציה היו בשנות החמישים אבל עדיין צריך להזהר (התקן בזמנו אמר החלפת מים כל 24 שעות, אבל בפועל כמעט אף פעם לא עושים את זה). את המים אסור לשמור בבקבוקי פלסטיק כי הם מפרישים חומרים מזהמים למים בחשיפה לאור שמש. ממה שאני זוכר שימוש בג'ריקני מתכת עמד בדרישות.  את המים צריך קודם כל לסנן ורק לאחר מכן להרתיח (זה משפיע על הטעם) , לגבי שמירת מים שעברו טיהור אוסמוזה הפוכה בבית , לכאן ולכאן אני אישית לא אהבתי את טעם הלוואי שיש מהמכונות הביתיות.
 
עבור כל אדם צריך שיהיה לו טבליות פחם פעיל, טבליה אחת לכל ליטר מים, הטבליות נועדות לטיהור מים במקרה חירום. מפוררים טבליה אחד לליטר מים.  החבילות לא דורשות מרשם רופא. וניתן לאחסן כמות גדולה מהם למקרה הצורך.

צריך להמנע ממאגרי מזונות מלוחים כי הם יגרמו לתחושת צמא, פרט למקרי בשר משומר בצנצנות שיכול להשמר בטמפ של 24 מעלות בצל אבל הם מאוד מלוחים, צנצנות בשר משומר מחזיקות לארבעה שנים, האמת לוף היה הרבה יותר טעים אבל כל אחד והטעם שלו. מצאתי מוצר בשר משומר בשם "טושונקה" שמיוצר במעלה אפריים , הטעם לא טעים כמו לוף , הוא לא מגיע בתצורה דומה אבל זה ייצור מקומי ויש לו כשרות רגילה בלבד. על כמה אנחנו מאמינים לכשרות זה שאלה טובה אני יכול לומר שממש לא מזמן החזרתי 7 ליטר של שמן זית וקיבלתי עליהם החזר (כי היו לי קבלות קנייה בחנות) אבל שאר  13 ליטר נאלצתי להשתמש כחומר ניכוי ושימון תעשייתי.  כן שמן זית משומש כחומר ניכוי וכחומר שימון, אבל יש לו נקודת עישון מאוד נמוכה אז להזהר.

אין מה לסמוך על מזון בהקפאה, במצב חירום אין חשמל , אז  מוצרי חלב, ובשר הולכים פיפאן בתוך מספר שעות עד ימים. פירות וירקות יחזיקו מספר ימים, שיטה שלמדתי מאנשים שעברו את הפסקות החשמל הארוכות זה להקפיא בקבוקי מים, ככה כשאין חשמל הם משחררים קצת מה"קור" שלהם לסביבה, וכל עוד המקרר סגור זה עדיין נותן עוד זמן למזון.

ממה שאני זוכר אחזקת חומרי דלק אסורה במקום המאחסן מזון, מקומות בלתי מאווררים , מתחת לקרקע (ללא שיש קומה שיכולה לאתר נזילות), או בקרבת מגורים, לכן אפילו אל תחשבו לאחסן דלק במקלט, זה כולל גם חומרי דלק רטוב (בנזין/סולר) וגם חומרי דלק יבש ( פלטות שהוספגו מראש בדלק, אבל יכולות להיות מודלקות ע"י חשיפה לטפמ' גבוהה או אפילו כבול דחוס) ומי שחושב לאחסן גז למקרי חירום יש לי חדשות רעות זה מתכון לצרות.

הפתרון הטוב ביותר לאנרגיה שאני מכיר הוא שימוש בשמונה  מצברי 50ah ביחד עם ממיר מתח עם סינוס טהור ומטען סולארי ביחד עם מטען בייתי. ייצרני סינוס טהור יכולים להיות גם עבור ציוד רפואי,  מצברי של 100ah ייתנו אנרגיה ל 20 שעות ל 60W לכל יחידה , אם תחברו 4 במקביל תקבלו בערך 240W ל 20 שעות, אם אין גישה למצברים זולים אפשר לקחת מצברי משאית רגילים ואם יש לכם מזל אז מצברי ג'ל, אפשר גם להרכיב מצברי 12V מיחידות קטנות יותר  (חיבור בתור) ולעבוד. לפי גוגל בית ממוצע צורך בערך כ 8kw/h  ליום. בפועל צריך להחזיק פתרון של  24kw ליום כתבתי פוסט על זה בזמנו למי שמעוניין.  אם אתם גרים בבניין קומות מעל 9 קומות איכלוס אמור להיות לכם גנרטור, ממה שאני יודע קומת החנויות הנמצאת מתחת לקומת הכניסה אינן נספרים בגובה, כך גם קומת חדר המעליות הנמצאת מעל קומות האיכלוס, לפני זמן מה  חברת החשמל כבר הודיעה שצריך לוודא שהגנרטור שלכם תקין למצב חירום (ונכון שבדקתם שיש לכם גנרטור תקין ? והוא לא סתם יושב שם לא מחובר לכלום ?) . לפי מה שאני זוכר כל בניין בין 29 מטר ומעלה חייב בגנרטור חירום, בפועל למרות שהבניינים הללו נופלים תחת ההגדרה של מגדל (או בניין רב קומות) בהרבה מהמבנים שנבנו לפני שנות  ה2000 , הגנטור פיזית לא שם. אז מי שיכול עדיף שירכוש גנרטור אפילו ברמת הבניין.

אם אין גנרטור , אז יש אל-פסק ! , לצערי תכנון האל-פסק הפתוח של ESR לא נראה שמתקדם כמו שרציתי שייתקדם. היו לי תקוות גדולות עבורו, אבל לצערי הפרוייקט לא נראה חי כיום. לכן נשארים רק האל פסקים הקנייניים,  את מרבית  הUPSים ואפילו חלק משירותי ה PDUים אפשר לתחזק על ידי או snmp או אפילו לחבר ל nut. כמה זה מקובל ? אם אני זוכר נכון גנרטור 200KVA מסויים היה מפרסם את המידע שלו ע"י snmp, בדקתי והיום למשל יש נגרטורים של יונדאי שיכולים להתחבר לאינטרנט ע"י מתאם פשוט ואז באמצעות אפליקציה אפשר להפעיל אותם מרחוק או לקבל מידע. כמעט כל אל-פסק שעבדתי איתו בשנים האחרנות הייתה אפשרות ניהול כמו שצריך, אמנם לא כולם עובדים בממשק שהקרנל של דביאן יזהה אותם , אבל היה ממשק רשת ממש יפה. לגבי PDUים המצב שונה, יש כאלה שבאים עם ניהול וובי נחמד, ויש כאלה שמרגישים שהם לא יותר מאשר מפצל לחדר שרתים, שום יכולת הפעלה מחדש של שקע בודד או אפילו הפעלה מחדש של כל המפצל. מקסימום נותנים הודעה שפורט אחד כרגע מעביר חשמל או, אומרים תודה שיש ממשק הודעת כלשהוא.

כמו שאנחנו דואגים למזון מים ואנרגיה צריך גם לדאוג לפן הדיגיטלי.

כל עוד אתם יכולים תשיגו דומיין ותרימו איחסון, אבל את הדומיין רכשו מספק דומיינים שלא הולך לזרוק אותכם לקרשים , לא היה צריך להיות גאון גדול בשביל להבין שלרכוש דומיין מאפגניסטן (כלומר .af  ) לשרת להטבים (quuer.af) יוביל לסגירה לאחר מספר שנים, אז כן, רכישת שירות מספק שאתם לא מכירים הייטב באירופה זה לא רעיון טוב, באידאל צריך לרכוש מספק מקומי שמצד אחד ידאג לפרטיות שלכם ומצד שני לא יסגור לכם את השירות מהר מאוד בגלל גחמות של נשמות טובות, אבל אם אין ברירה אפילו שרת שמספק דומיינים חינם, זה יהיה טוב יותר מאשר לסמוך על מישהוא אחר, ואם אין ברירה אז ולדעתי ככל שיהיו יותר אנשים שיישתמשו בשירותים כמו afraid וירימו שירותי מסטדון ומייל תחתם יהיה טוב יותר לכולם. לצערי חיפשתי ולא מצאתי אף שירות אחד כזה אצלנו. היה מאוד נחמד אילו היה לנו ספק שהיה מספק זאת תחת המטרייה שלו. ככה גם יהיה ניתוק מצד האיחוד האירופי או ארה"ב אנחנו נוכל להתמודד טוב יותר. ואם העולם היה מושלם כולנו היינו כבר משתמשים בתחליף DNS פרטי, ככה לא היינו צריכים לדאוג לרשם שיעשה בעיות.
 
האינטרנט הוא לא רק גוגל , פייסבוק, דיגיטל אושין, סיילס פורס,אליבאבא , מייקרוסופט טוייטר ואמאזון זה תלויי בכל אחד ואחד מאיתנו להחזיק את זה. זה למה בשביל הצרכים הפרטיים שלי אני מחזיק תשתיות ומנסה לשכנע אחרים להשתמש בזה.  כן אני לא מתעלם מהאירטניה שהפוסט הזה עצמו יושב על שירותי גוגל.

בעבר אני הייתי מתחזק שרת מראה משלי שהייתי מעדכן אחת לזמן מה, יש לי שרת שמספק קבצי zim ישנים, הרמתי לי שרת apt-mirror לפני כמעט שנה. אבל מאז השביעי לאוקטובר הפסקתי לעדכן אותו לחבילות חדשות, אני חושב שדרך פשוטה נוספת היא  לבנות מאגר דביאן פרטי מקבצי DVD של דביאן שיוצרו לפני ה 7 לאוקטובר (צריך להוריד משרתי המקור לפני שזה נהיה מאוחר מדי), לאחר מכן לקחת את repero ולהרים שרת בייתי.

אפשר לקרוא על הדרך הרשמית לבנות את המאגר הפרטי שלנו, ובשביל להוסיף קבצי דב מספיק יהיה להעתיק את הקבצים ולהוסיף אותם לתוף ה reprepro ולהריץ

reprepro includedeb dist /usr/local/share/mydebs/*.deb
 
לאחר שזה נבנה אפשר לפרסם את התוכן שלו כמו כל מאגר אחר.

בגלל המצב שיש עכשיו, ובגלל הצעות של כל מני נשמות טובות, אני חושב שחשוב שכל מי שיכול חשוב שירים שרת דוא"ל משלו,  כן אני עדיין לא עשיתי זאת, צודקים ! , אני מצאתי את המדריך הזה כמדריך ממש פשוט.   האמת אני ממש מזמן לא מריץ שרת דוא"ל משלי כי .. אני עצלן. אבל כנראה שאצטרך לעשות זאת ממש בקרוב, כי בכל רגע נתון עכשיו יכול להיות שייסגרו לנו את הגישה לשירותים הללו. לכן כל כך חשוב שנחזיק את שרתי המראה שלנו מוכנים בשביל שנוכל להרים את הסביבה כשזה יגיע, כמובן שעדיף להתקין עכשיו מאשר מאוחר יותר, אבל לפחות שזה יהיה מוכן.
 
לגבי שירות מסרים מיידים , להרים שרת מאטריקס בבית זה די פשוט, אבל לצערי החבילה של electron.io לא  ארוזה בדביאן, אז להרבה לקחות יהיה קשה להשתמש בזה.

יבוא אדם , ויגיד, מה אכפת לי, יש לי Dockerconf ואני פשוט אמשוך ואייצר מה שאני צריך ? לזה אני עונה מי שמאמין שהרשם  הציבורי של המזח (docker)  יהיה זמין אם יחסמו אותנו, אני שמח בשבילו , אני לא מאמין שהמזח או כל שרת אירופאי או אמריקאי יהיה פתוח במידה ותהיה חסימה או הפלה של הציר לחיבור לארצות הברית. אם מישהוא מכיר דרך לבצע מראה לשרת הרישום של המזח זה יהיה דבר מדהים.

יש לי קולגה שטוען שמעבר ל podman כבר עכשיו מתוך דוקר,  מקל על המעבר לregistey פרטי בדוקר, לא השתכנעתי כי ההבדל בבנייה של רגיסטרי פרטי ע"י משיכת הimage שנקרא registry:2 ובpodman בשביל להרים סביבה עושים זאת ע"י :
sudo podman run --privileged -d -name registry -p 5000:5000 -v /var/lib/registry:/var/lib/registry -- restart-always registry:2
והוספת הקישור בתוך /etc/containers/registries.conf תחת registreis כלומר:
registries = ["localhost:5000"]
לאחר שיש לכם רגיטרי פרטי פשוט דוחפים לתוכו את הimages החשובים לכם.

המינוס העיקרי שאני רואה כרגע בשימוש בפודמן הוא שאני לא יודע איך להפעיל windows docker תחתיו.

נקווה שאיש לא יצטרך את הידע הזה, אבל אם מישהוא ייקרא את זה ויוכל להגן על ביתו ועסקו זה שווה את זה.

יום שלישי, אוקטובר 17, 2023

התייחסות לדבריו של מנהל פרוייקט דביאן בהם הוא תיאר בני אדם כזבל שהוא לא רוצה שם קשר איתם

בעבר בדביאן היה מקובל לקבל את כולם בצורה פתוחה ולתת מרחב נעים ומקבל לכל המשתמשים בכל הפלטפורמות , לא היה צריך חוקים או חוזים לזה כלל, לפני מספר שנים הנורמה הזאת הפכה למשהוא שהוא חלק מהחוזה של דביאן.

לכל אדם בעולם יש את הרקע שלו, את האמונות שלו, את המנהגים שלו, בדביאן יצא לי לא לפעם לעזור ולדסקס עם אנשים עם רקע שונה ב 180 מעלות ממני, לא פעם יצא לי לתקשר עם אנשים מהצד השני של העולם, ומועלם לא הרגשתי או חשבתי שזה ראוי לדחות אדם אחר בגלל הרקע שלו או בגלל האמונה הפוליטית שלו, אבל אחרי מה שראיתי היום,  מעולם לא חשתי נדחה ושאט נפש ממשהוא כמו אחרי מה שראתי שפורסם על ידי מנהל פרוייקט דביאן DPL שעות לאחר פרסום הטבח ברעים.

נראה כאילו הוא הוסיף גינוי לארגון האחראי לטבח רק בשביל לסמן וי,התחיל  והמשיך בתוכן המזעזע שלו.
 
ניגשתי למרחב הציבורי של הקבוצה החברתית של דביאן (debian.social). וראיתי :
 

Around 2021, I would've considered going to Israel in the future if Netanyahu was ousted in the elections, and the extremist right-wing members of his government would go out with him and if there was a glimmer of hope of peace with Palestine. Instead, he's still there, and they continued ruthlessly murdering Palestinian civilians and confined them to Gaza, the biggest open-air prison in the world.
Last year they escalated further and went after journalists. Even destroying a major media building (fortunately no one was in there at the time) and killing journalists. Today they are taking down telecoms, and preventing food and medicine from entering the region.
I condemn the terrorist attacks from Hamas. I also condemn the senseless, relentless violence that Israel has inflicted upon millions of innocent people, and continue to do.
Maybe at one point I would've considered a possibility of going to Israel in the future, but right now there's a zero chance of that. The people who unconditionally support Israel are in the same league as people who supported Apartheid in South Africa, a MAGA American or other types of trash people.
I want nothing to do with them and they're not my friend. If someone can't manage to maintain a very minimum baseline of humanity, then they can go fuck off for all that I'm concerned.

הדף שלו נראה כך היום :



מיקום ההודעות הוא המדיה הרשמית של פרוייקט דביאן, אני מודה ל DPL שהוא אומר שהוא לא רוצה שום קשר לבני אדם אותם הוא מכנה זבל. 

אני לא אמנם לא DD, אבל לדביאן תמיד היה מקום חם בלב אצלי, אין הרבה שאני יכול לעשות חוץ מלהגיד WTF. עדיף היה אילו  לא היה מדבר כלל או משתף את התכנים הללו.

יום שישי, אוגוסט 18, 2023

המלצה חמה לרופאי משפחה ואיך לצפות בצילומי mri ו ct בדביאן.

כאשר אנחנו רוצים להציג את המידע הרפואי של מטופל בקוד פתוח ובצורה מאובטחת,  ניתן להשתמש בכלים פתוחים בשביל להציג את המידע.
 
נכון שעם קבצי ה DICOM בדר"כ תהיה תוכנה מצורפת, אבל האמת , עדיף להשתמש בכלי תוכנה חופשית בשביל להציג את המידע. למה זה טוב ? כי אתם לא תלויים בספק מסוייק בדרך כלל ויש יותר עיניים שעוברות על התוכנה ובודקות האם התוכנה הזאת בטוחה או לא. בדביאן למשל נהוג שתוכנות לא ישלחו מידע לגורם שלישי בלי אישור מפורש ופעולה מפורשת ויש דף שמסביר אילו תוכנות מדליפות מידע לגורם שלישי.

לאחר ביצוע ה MRI יכולים להתקבל קבצים במספר תקנים, ראיתי בנתיים את  האפשרויות קובץ dcm בודד,  מספר רב של קבצי dcm ביחד  עם קובץ index  ו xml  , מספר קבצי dcm עם קובץ txt המגדירים את הסביבה , מספר קבצי png וקובץ xml המגדיר את הסביבה. תיקיית dicomdir, וקבצי ה dcm הם פרוסות הסריקה.

מכיוון שחלק מהתוכנות שמיועדות להציג את המידע כתובות את התכנים לא תומכות בעברית, עדיף שאת השמות תרשמו אך ורק באותיות אנגליות (ascii). כי התוכן שיהיה בתוך הקבצים יכול להשבר אם משתמשים בשפה העברית מספר תעודת הזהות מוצג כמו שצריך כי זה מספר, שמות הקבצים והתוכן לגבי המטופל הולכים לאיבוד, למשל לקחתי קובץ dcm שיוצר ע"י מערכת של Planmeca ProMax ואני רואה שהוא מקודד ל ISO_IR 100 כאשר התוכן בפועל היה מוכנס בשפה העברית. השם של המטופל מוצג כ:


000002d0              10 00 3f 3f  3f 3f 5e 3f 3f 3f  3f   |..PN..????^???|
000002e0   3f 3f 3f                                        |???           |

כן אילו הם סימני שאלה בתוך המידע, את הבעיה הזאת פתרו במספר תוכנות ע"י שהם מצרפים את קובץ ה xml  וה אtxt המכילים את פרטי המטופל (כן , זה הולך נגד הרעיון של dicom אבל יש הבדל בן מצויי לרצויי.

בפלט של מכשיר סימנס למשל שמתי לב שדגם המכשיר לא מוכל בתוך קובץ ה dcm אלא רק את שם החברה. גם שם אני רואה את הקידוד ISO_IR_100 , ייתכן וזה פשוט הגדרת ברירת המחדל במכשירים הללו.

ניתן לצפות בתוכן בשתי גישות:

דורש פחות מקום בדיסק: אם רוצים להסתקל אך ורק על קבצי dcm (בלי לבצע stacking) ניתן להשתמש בAeskulp ושם לבחור ב Open ולסמן את כל קבצי ה dcm ישירות וללחוץ open.
 
דורש יותר מקום בדיסק:
בכלי dicomscope ובכלי xmedcon צריך קודם לאסוף את כל הקבצים לקובץ dicom בודד ע"י שימוש ב medcon
    medcon -f *.dcm -c dicom -stack3d -n -qc 
    
ולאחר מכן ניתן יהיה לפתוח את הקובץ הבודד בשביל לצפות בתוכן שלו ע"י מעבר אחד אחרי השני, ניתן כמובן לטעון קובץ אחר קובץ אבל זה די מייאש. אם ממש ממש רוצים ניתן אפילו להשתמש ב GiMP בשביל לפתוח את הקבצים הללו (רק שזה פחות אינטואטיבי) .

את הקבצים ניתן לקבל במספר דרכים, הצורה שאני ממליץ לכם היא  בצורת CD, אבל אם אתם רוצים להסתכן אז באמצעות גישה ברשת.
 
ניתן לקבל  באמצעות פקודות curl משרת ה pacs שלכם, אם למשל משתמשים ב dicom-server זה יהיה בהנחה והממשק נגיש תחת hospital.local :
curl --request GET "https://hospital.local/studies/$study_id/series/$series_id/instances/$instance_id" --header "Accept: application/dicom; transfer-syntax=*" --output "suppressWarnings.txt"
המשתנים $series_id $study_id ו $instance_id ניתן לקבל מהמאפיינים הידועים לנו מראש (אפשר לקבל את זה מכל קובץ dcm קודם שוהרדתם כבר או קיבלתם במייל / הודעה וכו ). במידע ובשרת שלכם הפעילו oauth2 יהיה צריך להעביר גם את ה barrier (כפי שאני מבין, אימות הוא אופציאונאלי).

בדקתי דוגמאות מפה , וראיתי שניתן לצפות בהם , בחלק מהמקרים נתקלתי בבעיה, מכיוון שממש לא ברור לי מה הרישיון של המידע שם בחרתי שלא להציג את התמונות הללו.

את הדוגמאות הבאות לקחתי מNEMA המגיע בפורמט dicomdir, תחת ההנחה כי ניתן להשתמש בחומר הזה, הזוכיות לתוכן המקורי (ומה שמקושר ) שייכים ל NEMA.

דוגמא להצגה בממשק של dicomscope:
 


 דוגמא לממשק של Aeskulap:

 
דוגמא לממשק של xmedcon:


המלצה חמה:

תעדיפו לקבל את הקבצים על CD ישן וטוב, ולא לשלוח את המידע הרפואי של המטופל שלכם במייל או יותר גרוע לקבל גישה לשרת ה PACS שלא דרך רשת LAN, כי כאשר תהיה דליפת מידע או פריצה, והיא תהיה, עדיף שעל המחשבים שלכם ובמערכות שייפרצו יהיה הכי פחות מידע. כשיש לכם גישה לשרת PACS, לפורצים גם תהיה גישה, ושם המשתמש והסיסמא שלכם לא יעזרו לכם, זה לא שאלה האם המערכת שלכם תפרץ או לא, והאם תהיה דליפת נתונים, השאלה היא מתי.  דברו עם איש ה IT שלכם שיסביר לכם איך להגדיר מפתח GPG בשבילכם שתוכלו לדבר עם המטופלים שלכם בצורה מאובטחת, כאשר תהיה דליפה המידע יהיה מוצפן בתיבות וזה לא יפגע במטופלים שלכם.

יום ראשון, יוני 25, 2023

מפגש פיתוח APT ו flatpak

אז הייתי במפגש מפתחים, ודנו בתוכנות חופשיות וקנייניות שפותחו ועל הדברים שאנשים למדו במהלך הבנייה.

המלצתי לאנשים להשתמש בflatpak ואם אפשר ב apt לדביאן בשביל לארוז את התוכנה (כי rpm זה פויה לאחר שRH סגרו רק ללקוחות שלהם), למה למרות שאני fanboy של דביאן קודם כל flatpak ורק אחרי זה apt ? כי אני מציאותי ולהרבה מפתחים אין כוח להתמודד עם כאב הראש של הכנסת חבילה יציבה ולתת תמיכה לאורך זמן של המוצר לדביאן כמו שצריך. ושם דובר על דברים שנכתבו ב C# ופייתון ואפילו קוד  JavaScript ועד כמה שאני יודע זה כאב ראש לא קטן לארוז את זה.
 
אני ממליץ בחום רב על flatpak ביחד עם חומר בgithub/gitlab ולקנייני גם את flatpak, מהסיבה כי בשונה מכאב הראש שיש בסנאפ והשליטה כל אחד יכול להרים שרת flatpak   (שדרך אגב לא ארוז לדביאן)

הבנייה דורשת סך הכל מבנה תיקיות וקבצים והיא טיפה פחות מורכבת מבניית חבילת דביאן, מכיוון שצריך לדאוג פחות לרשינות תלויות וחלוקת קבצים, אבל זה מגיע על החשבון שאת הקצבים שלכם לא תוכלו לשים במאגרים הרשמיים של דביאן אלא רק בשרתי הflatpak שיקבלו את החבילות שלכם.
 
וסליחה אישית ממאיר שלא היה לי את המידע על המפגש לפני הזמן.