Bayanin kuskure yana bayyana sa’ad da umarnin sarrafa VPN ya fara, kuma sha’awar farko ita ce a shigar da wani Python daban ko a nuna tsohon tsarin zuwa wani wuri dabam. Wannan sha’awa tana haɗa nau’ikan lokacin gudana biyu waɗanda ba su da wata alaƙa da juna. Ɗaya na tsarin aiki ne da kayan aikin sa da aka yi wa fakiti; ɗayan na kowane aikin da kake ginawa ne. Canja na farko don gamsar da na biyu ita ce hanyar da kwamfutar tebur mai aiki ke rasa mai sarrafa fakiti.

Kwatancen da ya cancanci yi shi ne tsakanin ɓangaren da ya gaza da gaske da yanayin gudana da kake da haƙƙin canjawa. Kusan ba sa zama abu ɗaya.

Tambayoyin Python guda biyu da suke kama da ɗaya

Tambaya ta farko ita ce: wane mai fassara ne ya gudanar da shirin da ya buga bayanin kuskuren? Ta biyu ita ce: wane mai fassara ne aikina ya kamata ya yi amfani da shi? Suna kama da juna a tashar umarni domin ana amsa dukansu ta rubuta python3, kuma suna da masu mallaka daban, hanyoyin haɓakawa daban da faɗin tasiri daban.

Kayan aikin tsarin yana da alaƙa da mai fassara da rarrabawar sa ta zo da shi, tare da modulolin da aka haɗa waɗanda aka gina bisa ABI na wannan mai fassara. Aiki yana da alaƙa da kowane yanayi da ka ƙirƙira masa. Motsa tsohon tsarin yana canja na farko ga kowane kayan aiki a na’urar lokaci ɗaya; ƙirƙirar yanayi yana canja na biyu ga babban fayil ɗaya.

Ɗaya ne kawai daga waɗannan ayyukan ake iya mayarwa cikin minti ɗaya. Ba na farko ba ne.

Wane ɓangare ne ya haifar da kuskuren

Karanta layin farko na bayanin kuskure da fayil ɗin da za a iya gudanarwa wanda ya haifar da shi kafin ka karanta wani abu. Frontend ɗin layin umarni, sabis ɗin mai izini da haɗin API sassa ne daban, kuma wasu daga cikinsu ne kawai Python.

command -v openvpn3
head -n 1 "$(command -v openvpn3)"
dpkg -S "$(command -v openvpn3)" 2>/dev/null
systemctl status openvpn3-service-client --no-pager

Layin farko na script yana ambaton mai fassara da zai yi amfani da shi, kuma daga wannan mai fassara ne bayanin kuskuren ya fito. Tambayar fakiti tana gaya maka wane ne ya mallaki fayil ɗin, wanda ke yanke shawarar wane ne aka ba izinin canja shi. Yanayin sabis ɗin yana amsa wata tambaya gaba ɗaya: shin backend ɗin mai izini da ke kafa zama da gaske yana gudana.

Kuskuren shigo da moduli, kin amincewa da kunnawa ta D-Bus da takardar shaidar da aka ƙi matakai uku ne daban. Kuskuren shigo yana faruwa kafin wani zama ya kasance, don haka babu wani tsarin VPN da zai gyara shi, kuma sabis mai aiki shi ma ba zai gyara shi ba. Rarraba saƙon cikin ɗaya daga waɗannan matakai uku shine ainihin mataki na farko.

Abin da yanayin aiki zai iya gyarawa da abin da ba zai iya ba

Yanayin aiki yana warware matsalar aiki: sifofin ɗakin karatu daidai da aikace-aikace ɗaya ke buƙata, ware daga kowane abu. Wannan yana da amfani da gaske, kuma shine kayan aikin da ya dace lokacin da shirin da ya gaza script ɗinka ne.

uv run --python 3.11 app.py
python3 -c 'import openvpn3; print(openvpn3.__file__)'

Umarni na biyu yana nuna wane kwafin haɗin da wani mai fassara zai iya gani, wadda ita ce hanya mafi sauri don bambanta fakiti da ya ɓace da wanda aka rufe. Gudanar da shi da mai fassarar da script ɗin da ya gaza ke amfani da shi, ba da wani wanda ya yi sa’a yana aiki ba.

Abin da yanayin aiki ba zai iya yi ba shine gyara frontend ɗin da rarrabawa ta yi wa fakiti. An gina dogaron wannan shirin ga mai fassarar da mai sarrafa fakiti ya zaɓa, kuma gudanar da shi cikin yanayin aikinka ko dai ya kasa ko ya haifar da cakuda da babu wanda ke tallafa wa. Shigar da hanyoyi cikinsa da maɓallin yanayi kuskure ɗaya ne da ƙarin matakai: ka canja abin da kayan aikin ke lodawa ba tare da canja abin da aka gwada shi da shi ba. Wannan musayar tana kama da gyara daidai tsawon lokacin da ake ɗauka don cin karo da shigo da na gaba.

Me ya sa juya mai fassarar tsarin tarko ne

Canja mai fassara na tsoho yana da ban sha’awa domin yana kama da gyara bayanin kuskuren da umarni ɗaya. Hakanan yana karya tunanin da aka gina kowane kayan aikin Python na fakiti a kansa a mai masauki, kuma gazawa na bayyana daga baya da wuraren da ba su da alaƙa.

An ƙera hanyoyin zaɓin madadin don sauya tsakanin aiwatarwa daidai, ba don shigar da sabon harshe ƙarƙashin tsofaffin modulolin da aka haɗa ba. Ana gina haɓɓaka da aka haɗa don takamaiman ABI, don haka modulin da aka shigo da shi jiya zai iya kasa lodawa yau ba tare da an cire fakiti ɗaya ba.

Akwai kuma tarkon suna a cikin shawarar da mutane ke samu. Umarnin python marar siga ba shi da ma’ana ɗaya ta duniya a cikin rarrabawa da yanayi, kuma ɗaukarsa a matsayin ma’auni tsayayye ga wani babban siga yana haifar da gyare-gyaren da ke aiki kawai a na’urar da aka rubuta su. Karanta manufar tsarin da ke gabanka ba ta rubutun bulo ba.

Gwaje-gwajen karɓa daban

A ƙarshe ya kamata a sami gwaje-gwaje biyu, kuma wucewar ɗaya ba ya faɗin komai game da ɗayan. Na farko shine umarnin abokin ciniki da ake tallafa wa yana aiki da mai fassarar da aka yi masa fakiti. Na biyu shine sabis ɗin mai izini ya kafa zama kuma tunnel ɗin yana ɗaukar zirga-zirga.

openvpn3 sessions-list
openvpn3-service-client --help 2>/dev/null | head -n 3
ip -4 addr show tun0

Ka riƙe wata hanya mai zaman kanta zuwa na’urar yayin da kake aiki, musamman idan VPN ɗin yana ɗaukar hanyar shiga gudanarwa ɗaya tilo. Canji a mai fassarar tsarin shine ainihin irin gyaran da zai iya cire wannan damar a tsakiyar hanya.

Idan gazawar moduli ne da ya ɓace ga kayan aikin tsarin, gyaran aikin fakiti ne ta hanyar aikin da ake tallafa wa. Idan gazawar rigima ce ta siga a cikin aikinka, gyaran yanayi ne. Zaɓi tsakanin waɗannan biyun shine dukan shawarar, kuma shi ne shirin da ya buga bayanin kuskuren ke yanke shi.

Labarai masu alaƙa