یہ ماڈیول کیا کرتا ہے #
ہر بار جب آپ کوئی سرور چلاتے ہیں تو آپ کو بنیاد قائم کرنی پڑتی ہے: زیر التوا اپ ڈیٹس انسٹال کریں، فیصلہ کریں کہ پروگرام کون سی زبان بولیں، درست ٹائم زون طے کریں، مشین کو ایک نام دیں اور یقینی بنائیں کہ گھڑی وقت پر ہے۔ یہ چھوٹے مگر بار بار آنے والے کام ہیں، اور ہر ایک کا اپنا Linux کمانڈ اپنے نحو کے ساتھ ہوتا ہے۔
os ماڈیول انہیں سب کو ایک مربوط انٹرفیس کے پیچھے جمع کرتا ہے۔ یہ سسٹم کو اپ ڈیٹ کرتا ہے (یا صرف سیکیورٹی والا حصہ) اور آپ کو بتاتا ہے کہ آیا ری بوٹ درکار ہے؛ یہ بلا نگرانی اپ گریڈز فعال کرتا ہے تاکہ سیکیورٹی اپ ڈیٹس خود بخود لاگو ہو جائیں؛ یہ locale، ٹائم زون اور hostname کو idempotent طریقے سے طے کرتا ہے؛ اور یہ NTP ہم آہنگی کا انتظام کرتا ہے تاکہ وقت کبھی بھٹکے نہ۔ ہر عمل دہرانے کے لیے محفوظ ہے: اگر یہ پہلے سے مطلوبہ حالت میں ہے، تو یہ کچھ نہیں چھوتا۔
وہ ذیلی کمانڈز جو کسی چیز کو تبدیل کرتے ہیں (اپ ڈیٹ، locale طے کرنا، ٹائم زون، hostname یا NTP) سسٹم میں لکھتے ہیں اور انہیں root کے مراعات درکار ہیں: انہیں sudo کے ساتھ چلائیں۔ جو صرف دریافت کرتے ہیں (status، list، check) انہیں یہ درکار نہیں۔
عام کام #
جو آپ کرنا چاہتے ہیں اسے منتخب کریں۔ ہر ترکیب کمانڈ پہلے سے لکھی ہوئی لاتی ہے — بس مثال کی قدروں کو اپنی قدروں سے بدلیں اور کاپی کریں دبائیں۔
1
اپ ڈیٹس دیکھیں اور لاگو کریں
دیکھیں کہ کیا زیر التوا ہے اور فوراً اپ ڈیٹ ہو جائیں۔
پہلے عمومی حالت اور کون سی اپ ڈیٹس منتظر ہیں، دیکھیں:
$ imaxe os status
$ imaxe os checkجو زیر التوا ہے اسے لاگو کریں۔ اگر آپ صرف سیکیورٹی والی چاہتے ہیں اور چاہتے ہیں کہ ضرورت پڑنے پر ری بوٹ ہو جائے، تو فلیگز شامل کریں:
$ sudo imaxe os update --security-only --reboot-if-neededimaxe os reboot-required استعمال کریں (ایگزٹ کوڈ 0 = ہاں، درکار ہے)۔2
سیکیورٹی اپ ڈیٹس کو خودکار بنائیں
سیکیورٹی اپ ڈیٹس کو خود بخود لاگو ہونے دیں، بغیر آپ کی نگرانی کے۔
بلا نگرانی اپ گریڈز فعال کریں۔ یہ آپ کے لیے unattended-upgrades کی کنفیگریشن تیار کرتا ہے:
$ sudo imaxe os autoupdate enableتصدیق کریں کہ یہ فعال ہے اور اگلا عمل کب ہوگا:
$ imaxe os autoupdate statussudo imaxe os autoupdate disable۔3
ٹائم زون اور وقت طے کریں
اپنا IANA زون طے کریں اور یقینی بنائیں کہ گھڑی NTP کے ذریعے ہم آہنگ ہو۔
اگر آپ کو اپنے زون کا صحیح نام یاد نہیں، تو پہلے اسے فلٹر کریں:
$ imaxe os timezone list Europeزون طے کریں (یہ idempotent ہے) اور وقت کی ہم آہنگی فعال کریں:
$ sudo imaxe os timezone set Europe/Madrid
$ sudo imaxe os timesync enableimaxe os timesync status کے ساتھ جانچیں۔4
سسٹم کی زبان طے کریں
LANG کی وضاحت کریں اور اگر locale ابھی موجود نہیں تو اسے تیار کریں۔
سسٹم کی زبان طے کریں۔ کمانڈ locale تیار کرتا ہے اور اگر locales پیکج غائب ہو تو اسے انسٹال کرتا ہے:
$ sudo imaxe os locale set es_ES.UTF-8LANG تبدیل کیے بغیر مزید زبانیں دستیاب کرنا چاہتے ہیں؟ انہیں الگ سے تیار کریں:
$ sudo imaxe os locale generate es_ES.UTF-8 en_US.UTF-8imaxe os locale status کے ساتھ لیں۔5
مشین کا نام تبدیل کریں
ایک واضح hostname طے کریں اور /etc/hosts کو مطابقت میں رکھیں۔
/etc/hosts کو مطابقت میں رکھیں۔hostname تفویض کریں۔ صرف حروف، اعداد اور ہائفن کی اجازت ہے، زیادہ سے زیادہ 63 حروف:
$ sudo imaxe os hostname set web-01/etc/hosts کو مطابقت کے لیے اپ ڈیٹ کیا جاتا ہے۔ اسے imaxe os hostname status کے ساتھ تصدیق کریں۔اگر انسٹنس کا انتظام cloud-init کرتا ہے، تو یہ ہر بوٹ پر hostname دوبارہ لکھ سکتا ہے۔ اسی لیے os.yml طے شدہ طور پر hostname فیلڈ کو خالی چھوڑتا ہے: اسے صرف اسی صورت میں طے کریں جب آپ کو معلوم ہو کہ cloud-init اسے اووررائٹ نہیں کرے گا۔
نحو #
imaxe os <subcomando> [<acción>] [<argumento>...] [flags]وہ ذیلی کمانڈز جو سسٹم کو تبدیل کرتے ہیں (اپ ڈیٹ، بلا نگرانی اپ گریڈز، locale، ٹائم زون، hostname، NTP) کو root کے مراعات درکار ہیں (sudo استعمال کریں)۔ مشین کے پڑھنے کے قابل آؤٹ پٹ حاصل کرنے کے لیے کسی بھی status یا check میں --json شامل کریں، جو scripting کے لیے موزوں ہو۔
ذیلی کمانڈز #
| ذیلی کمانڈ | یہ کیا کرتا ہے | ایکشنز / فلیگز |
|---|---|---|
| status | سسٹم کی اپ ڈیٹ حالت کا خلاصہ۔ | --json |
| update | زیر التوا اپ ڈیٹس ابھی لاگو کرتا ہے۔ | --security-only, --reboot-if-needed |
| check | زیر التوا اپ ڈیٹس کو لاگو کیے بغیر فہرست بناتا ہے۔ | --json |
| reboot-required | بتاتا ہے کہ آیا ری بوٹ زیر التوا ہے (ایگزٹ 0 = ہاں، 1 = نہیں)۔ | --json |
| autoupdate | بلا نگرانی خودکار اپ ڈیٹس کا انتظام کرتا ہے۔ | enable · disable · status |
| locale | سسٹم locale کا انتظام کرتا ہے (جو درکار ہو اسے تیار اور انسٹال کرتا ہے)۔ | status · list · set · generate |
| timezone | سسٹم کا ٹائم زون دکھاتا یا تبدیل کرتا ہے۔ | status · list · set |
| hostname | hostname دکھاتا یا تبدیل کرتا ہے (/etc/hosts کے ساتھ مطابق)۔ | status · set |
| timesync | وقت کی ہم آہنگی (NTP) کا انتظام کرتا ہے۔ | status · enable · disable |
آرگیومنٹس اور فلیگز #
| آرگیومنٹ / فلیگ | قسم | کہاں لاگو ہوتا ہے | تفصیل |
|---|---|---|---|
| --json | bool | status · check | نتیجہ stdout پر منظم JSON کے طور پر جاری کرتا ہے، جو scripting کے لیے موزوں ہے۔ |
| --security-only | bool | update | صرف سیکیورٹی اپ ڈیٹس لاگو کرتا ہے۔ |
| --reboot-if-needed | bool | update | اگر اپ ڈیٹ کے بعد سسٹم کو ضرورت ہو تو خود بخود ری بوٹ کرتا ہے۔ |
| <locale> req. | string… | locale set · locale generate | es_ES.UTF-8 فارمیٹ میں locale۔ set میں یہ ایک ہی ہوتا ہے (سسٹم LANG)؛ generate میں، تیار کرنے کے لیے ایک یا زیادہ۔ |
| <zona> req. | string | timezone set | IANA ٹائم زون، مثلاً Europe/Madrid۔ |
| <filtro> | string | timezone list | زون کی فہرست کو محدود کرنے کے لیے اختیاری فلٹر (مثلاً Europe)۔ |
| <nuevo> req. | string | hostname set | نیا hostname: چھوٹے حروف a-z، اعداد 0-9 اور ہائفن، زیادہ سے زیادہ 63 حروف۔ |
فائلیں اور راستے #
| راستہ | مواد |
|---|---|
| /etc/imaxe/os.yml | ماڈیول کی کنفیگریشن: بلا نگرانی اپ گریڈز، اپ ڈیٹ پالیسی، locale، ٹائم زون، hostname اور NTP۔ |
| /var/log/imaxe/os.log | ہر اپ ڈیٹ اور سسٹم کنفیگریشن تبدیلی کا منظم لاگ۔ |
| /etc/apt/apt.conf.d/20auto-upgrades | autoupdate enable سے تیار کردہ کنفیگ جو بلا نگرانی اپ گریڈز فعال کرتی ہے۔ |
| /etc/apt/apt.conf.d/50unattended-upgrades | unattended-upgrades کے لیے قواعد (کیا اپ ڈیٹ ہوتا ہے، ری بوٹ ونڈو، خارج کرنے کی فہرست)۔ |
os.yml کی مثال:
unattended:
enabled: true
security_only: true
automatic_reboot: false
automatic_reboot_time: "03:00"
blacklist: []
update:
default_security_only: false
locale:
lang: es_ES.UTF-8
generate: [es_ES.UTF-8, en_US.UTF-8]
timezone: Europe/Madrid
hostname: ""
ntp:
enabled: trueخالی فیلڈز ("") کا مطلب ہے «نہ چھوئیں»: ماڈیول اس ترتیب کو بالکل ویسے ہی چھوڑ دیتا ہے جیسے وہ ہے۔ اسی لیے hostname خالی آتا ہے — انسٹنس عام طور پر اسے cloud-init کے ذریعے سنبھالتا ہے۔
ایگزٹ کوڈز اور لاگز #
ہر عملدرآمد ایک کوڈ لوٹاتا ہے جسے آپ echo $? کے ساتھ جانچ سکتے ہیں — اسکرپٹس میں سلسلہ بنانے کے لیے مفید:
reboot-required ایگزٹ کوڈ کو اپنے جواب کے طور پر استعمال کرتا ہے: 0 کا مطلب ہے «ہاں، ری بوٹ درکار ہے» اور 1 کا مطلب ہے «نہیں»۔ اس طرح آپ اسے متن پارس کیے بغیر براہِ راست کسی اسکرپٹ میں سلسلہ بنا سکتے ہیں۔
ڈی بگ کرتے وقت لاگ کی براہِ راست پیروی کریں:
$ sudo tail -f /var/log/imaxe/os.logمسائل کا حل #
| علامت | ممکنہ وجہ | حل |
|---|---|---|
| USAGE نکلتا ہے (کوڈ 2) | کوئی مطلوبہ آرگیومنٹ غائب ہے (locale، زون یا hostname) یا فارمیٹ غلط ہے۔ | آرگیومنٹس کی میز کا جائزہ لیں: hostname صرف a-z0-9 اور ہائفن کی اجازت دیتا ہے (≤63)۔ |
| ری بوٹ کے بعد hostname واپس بدل جاتا ہے | cloud-init ہر بوٹ پر hostname دوبارہ لکھتا ہے۔ | cloud-init میں hostname کا انتظام غیر فعال کریں، یا os.yml میں فیلڈ خالی چھوڑیں اور اسے ہاتھ سے طے نہ کریں۔ |
locale set سست ہے یا ناکام ہوتا ہے | locales پیکج موجود نہیں ہے اور اسے انسٹال/تیار کرنا پڑتا ہے۔ | سسٹم اپ ڈیٹ ہونے کے ساتھ دوبارہ کوشش کریں (imaxe os update)؛ ماڈیول locales انسٹال کرتا ہے اور locale خود تیار کرتا ہے۔ |
| وقت اب بھی غلط ہے | NTP ہم آہنگی غیر فعال ہے۔ | اسے sudo imaxe os timesync enable کے ساتھ فعال کریں اور imaxe os timesync status کے ساتھ تصدیق کریں۔ |
| بلا نگرانی اپ گریڈز لاگو نہیں ہوتیں | اس مشین پر بلا نگرانی اپ گریڈز کبھی فعال نہیں ہوئیں۔ | sudo imaxe os autoupdate enable چلائیں اور imaxe os autoupdate status کے ساتھ تصدیق کریں۔ |
کیا سسٹم ماڈیول کے ساتھ اٹک گئے ہیں؟
«imaxe <module> status --json» کے آؤٹ پٹ کے ساتھ ہمیں لکھیں اور ہم فوراً جواب دیں گے۔