Ви можете створювати модулі для Slax яким завгодно чином доти поки користуєтеся ними самі. Однак, якщо ви хочете поділитися модулями з іншими, вам доведеться слідувати правилам, описаним на даній сторінці. Правила складені, в першу чергу, для зручності користувача; якщо ви не будете дотримуватися цих правил, то Ваш модуль ніколи не потрапить в офіційну базу модулів Slax.
Модуль Slax - це стисла файлова система squashfs з розширенням .lzm. Модуль створений утилітою mksquashfs і може бути вилучено (розпакований), використовуючи unsquashfs. Обидва цих інструменту повинні бути пропатчити (змінені) для підтримки алгоритму стиснення LZMA. Ці утиліти вже включені в Slax.
Кожен модуль Slax містить всі файли і директорії з повним шляхом. Наприклад, модуль з bash (бінарники і декількома сторінками man) повинен виглядати на зразок цього:
Всі директорії в вашому модулі повинні бути доступні для звичайного користувача. Скиньте всі дозволи на 755 (drwxr-xr-x), поки не буде значущою причини використовувати відмінні дозволу для окремої директорії.
Зберігайте розмір вашого модуля найменшим. Розпакуйте всі архіви, які можуть бути безпечно розпаковані (наприклад, сторінки man, тому що LZMA стисне їх набагато краще), видаліть всі файли, в яких немає необхідності для запуску програми (наприклад, непотрібну документацію, невикористовувані звуки, зображення png / jpg, непотрібні переклади з / usr / share / locale) і виріжте (strip) всі непотрібні символи з бінарників.
Коли ви компілюєте програму, переконайтеся, що використовуєте правильні прапори компілятора (cflags) і параметри. Далі, рекомендується використовувати i486 інструкції (які забезпечують найкращу сумісність), але і налаштуйте продуктивність коду так, як якщо б цільової була архітектура i686. У Slax, ви можете запустити configure-for-slax як ярлик. Він робить те ж саме
Жодному разі не вмикайте будь-які існуючі файли з Slax в свій модуль, навіть якщо ви їх змінили. Іншими словами, ваш модуль ніколи не повинен "перезаписувати" ніякі файли в Slax, поки не з'явиться значущою причини для цього. Це може зробити ваш модуль несумісним з новішими версіями Slax і може стати причиною проблем з модулями інших користувачів. Якщо вам дійсно потрібно замінити файл в Slax, (наприклад, щоб прописати новий шлях в /etc/ld.so.conf), напишіть замість цього скрипт запуску, який буде змінювати (оновлювати) окремий файл, замість переписування його вашим модулем.
Ось приклад списку з кількох файлів, які ніколи не повинні бути включені в ваш модуль:
Якщо вам потрібно виконати щось під час активації модуля, або запуск або вимикання системи, то використовуйте директорії sysvinit-типу. Передова практика зробити загальний сценарій в директорії /etc/rc.d/init.d/, яка зрозуміє 'start' і 'stop' аргументи. Всі сценарії в тій директорії будуть розпочаті з 'start' аргумент під час активації модуля, і з 'stop' аргумент під час вимикання. Вибірково, ви можете встановити символічні з'єднання починаючи з uppercase s (почати) і uppercase k (вбити) в директоріях sysvinit відповідність ваше побажав runlevel, наприклад /etc/rc.d/rc3.d/. Кожна пора runlevel змінено, Slax виконує всі сценарії починаючи з k від попередньої директорії runlevel (вбити), і всі сценарії починаючи з s від справжньої директорії runlevel.
У наступному прикладі, Slax виконуватиме 'apache.sh start' на рівні виконання 3 (що означає запуск системи), і буде виконувати 'apache.sh stop' на рівні виконання 0 або 6 (це означає, що Slax вимикає або перезавантажує систему) .
Якщо ваше ПЗ може запускатися в будь-якому графічному середовищі (KDE, XFCE і ін.), То ви повинні вкласти іконку і додати файл з пунктом меню в ваш модуль, для того, щоб споживач міг легко запустити додаток знайшовши його в меню. Для додавання пункту меню, просто створіть два файли:
Перший файл (* .desktop) описує пункт меню. Він може виглядати так:
Коли ПО вашого модуля запускається, воно повинно просто почати працювати, без непотрібних діалогів, підказок дня або ліценціонних угод. Пам'ятайте, що якщо користувач додав ваш модуль на CD-R, то у нього не буде можливості запам'ятати налаштування модуля (вимкнути підказки, погодитися з ліцензійною угодою, і т.д.), так що модуль не повинен йому докучати.
Залежно вашого модуля повинні бути настільки мінімальними, наскільки це можливо. Це означає, що краще не мати залежностей на інші модулі, але варто прагнути до зменшення розміру вашого модуля. Наприклад, якщо ваш модуль може безпроблемно працювати без python-а, то видаліть всі скрипти на мові Python, замість включення самого Python-а в модель і т.д.
Якщо ваш модуль вимагає яких-небудь бібліотек, які необхідні тільки для вашого модуля, то вам слід включити такі бібліотеки в сам модуль, а не завантажувати їх окремо. Як приклад, XFCE вимагає велику кількість xfcelib * бібліотек, які більше ніде не потрібні. Так що включите їх в модуль XFCE.
З іншого боку, якщо для вашого модуля необхідні бібліотеки, які можуть знадобитися комусь ще, то такі бібліотеки варто завантажувати окремо від самого модуля. Наприклад, бінарні файли Python-а повинні завжди завантажуватися окремо від будь-якого модуля.
Завантажте ваші модулі
Коли ваш модуль відповідає правилам, ви можете ділитися ним з іншими людьми. Офіційний репозитарій модулів повинен бути якомога більш корисний для кінцевих користувачів; для цієї мети дуже важливо, щоб кожен модуль мав Симпотичная іконку, скріншот, який показує як виглядає запущеної ПО на свіжому SLAX (використовуючи стиль KDE за замовчуванням), а також містити повноцінне опис, яке дасть користувачам вичерпну інформацію про модуль.
Назву не должено містити всі непотрібні тире і підкреслення, просто вкажіть назву програми, і потім номер версії. наприклад: