"Татварын PosAPI Linux дээр ажиллуулахад гарах асуудлууд шийдэх"-ны өөр хувилбарууд
(Хэрэглэгчид 11 дундын хувилбарууд харагдахгүй) | |||
1-р мөр: | 1-р мөр: | ||
+ | |||
+ | == Суулгаж тохируулах == | ||
+ | |||
+ | ''Ubuntu 20.04 дээр доорх аргаар тохируулж үзэж туршсан болно.'' | ||
+ | |||
+ | Эхлээд зарим санг суулгаж бэлдэнэ: | ||
+ | |||
+ | <pre> | ||
+ | sudo apt install libqt5network5 libqt5networkauth5 libqt5networkauth5-dev libqt5script5 | ||
+ | </pre> | ||
+ | |||
+ | |||
+ | Түүний дараа татвараас өгсөн холбоосоор PosAPI-гаа татаж аваад x64/libPosAPI.so файлыг мөн /usr/lib/x86_64-linux-gnu хавтас руу хуулна. | ||
+ | |||
+ | Ингээд sendData файлаа ажиллуулахад эхний удаад алдаа заах ба дахин ажиллуулахад хэвийн болно. | ||
+ | |||
+ | Ингээд getInformation ба checkApi функцуудыг шалгахад хэвийн болсон байх ёстой. | ||
+ | |||
+ | Болоогүй бол доорхоор хийгээд дахин sendData 2 удаа ажиллуулж үзнэ. | ||
+ | |||
+ | |||
+ | == Асуудал шийдвэрлэх == | ||
+ | |||
'''sendData үйлдлийг хийх үед ийм алдаа гарлаа. Энэ асуудлыг хэрхэн шийдэх вэ?''' | '''sendData үйлдлийг хийх үед ийм алдаа гарлаа. Энэ асуудлыг хэрхэн шийдэх вэ?''' | ||
+ | <pre> | ||
{ | { | ||
"errorCode": 317, | "errorCode": 317, | ||
6-р мөр: | 30-р мөр: | ||
"success": false | "success": false | ||
} | } | ||
+ | </pre> | ||
'''"libsqlite3-0" сангийн version зөрөөд байсан байна.''' | '''"libsqlite3-0" сангийн version зөрөөд байсан байна.''' | ||
− | |||
− | |||
− | Тэгэхээр хуучин version -г нь хайж олж байгаад суулгаж | + | libsqlite3-0 (3.8) |
+ | |||
+ | Тэгэхээр хуучин version -г нь хайж олж байгаад суулгаж ажиллуулахад алдаа нь засагдаж байна шүү. | ||
3.8 хувилбарын debian package-н татах линк | 3.8 хувилбарын debian package-н татах линк | ||
https://launchpad.net/ubuntu/trusty/amd64/libsqlite3-0/3.8.2-1ubuntu2.1 | https://launchpad.net/ubuntu/trusty/amd64/libsqlite3-0/3.8.2-1ubuntu2.1 | ||
+ | libsqlite3-0_3.8.2-1ubuntu2.1_amd64.deb ийм нэртэй файл татагдана. Доорх тушаалаар задална. | ||
− | libsqlite3-0_3.8.2-1ubuntu2.1_amd64.deb | + | <pre> |
+ | $ dpkg -x libsqlite3-0_3.8.2-1ubuntu2.1_amd64.deb libsqlite3 | ||
+ | </pre> | ||
− | + | libsqlite3 энэ фолдерт задарсан файлуудаас, libsqlite3.so.0.8.6 гэсэн файлыг ажиллуулж буй файлын хавтсанд (эсвэл зохих фолдерт) libsqlite3.so.0 нэртэй болгож хийнэ. | |
− | + | ||
+ | Хэрэв дээрх алдаа гарсан хэвээр байвал libsqlite3.so.0 файлыг сонгохгүй байгаа гэсэн үг тул доорх байдлаар ажиллуулах юмуу LD_LIBRARY_PATH хувьсагчид libsqlite3.so.0 файлыг хуулсан хавтасныхаа абсолют замыг зааж өгөх гэх зэргээр шийдэж болно. | ||
+ | |||
+ | <pre> | ||
+ | LD_LIBRARY_PATH=. ./executable_binary | ||
+ | </pre> | ||
+ | |||
+ | '''Segmentation fault (core dumped)''' гээд болохгүй байхад доорхыг суулгаад хэвийн ажиллав. | ||
+ | |||
+ | '''libssl1.0.0 -ийг Ubuntu 20.04-т суулгах''' | ||
− | + | <pre> | |
+ | $ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb | ||
+ | $ sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb | ||
+ | </pre> | ||
− | + | Ингээд sendData файлаа ажиллуулахад эхний удаад алдаа заах ба дахин ажиллуулахад хэвийн болно. | |
− | |||
− | |||
21:44, 10 Тавдугаар сар 2022-ий байдлаарх одоогийн засвар
Суулгаж тохируулах
Ubuntu 20.04 дээр доорх аргаар тохируулж үзэж туршсан болно.
Эхлээд зарим санг суулгаж бэлдэнэ:
sudo apt install libqt5network5 libqt5networkauth5 libqt5networkauth5-dev libqt5script5
Түүний дараа татвараас өгсөн холбоосоор PosAPI-гаа татаж аваад x64/libPosAPI.so файлыг мөн /usr/lib/x86_64-linux-gnu хавтас руу хуулна.
Ингээд sendData файлаа ажиллуулахад эхний удаад алдаа заах ба дахин ажиллуулахад хэвийн болно.
Ингээд getInformation ба checkApi функцуудыг шалгахад хэвийн болсон байх ёстой.
Болоогүй бол доорхоор хийгээд дахин sendData 2 удаа ажиллуулж үзнэ.
Асуудал шийдвэрлэх
sendData үйлдлийг хийх үед ийм алдаа гарлаа. Энэ асуудлыг хэрхэн шийдэх вэ?
{ "errorCode": 317, "message": "Баазтай харьцахад алдаа гарлаа!!! \"unknown database BILL_DATA\"", "success": false }
"libsqlite3-0" сангийн version зөрөөд байсан байна.
libsqlite3-0 (3.8)
Тэгэхээр хуучин version -г нь хайж олж байгаад суулгаж ажиллуулахад алдаа нь засагдаж байна шүү.
3.8 хувилбарын debian package-н татах линк https://launchpad.net/ubuntu/trusty/amd64/libsqlite3-0/3.8.2-1ubuntu2.1
libsqlite3-0_3.8.2-1ubuntu2.1_amd64.deb ийм нэртэй файл татагдана. Доорх тушаалаар задална.
$ dpkg -x libsqlite3-0_3.8.2-1ubuntu2.1_amd64.deb libsqlite3
libsqlite3 энэ фолдерт задарсан файлуудаас, libsqlite3.so.0.8.6 гэсэн файлыг ажиллуулж буй файлын хавтсанд (эсвэл зохих фолдерт) libsqlite3.so.0 нэртэй болгож хийнэ.
Хэрэв дээрх алдаа гарсан хэвээр байвал libsqlite3.so.0 файлыг сонгохгүй байгаа гэсэн үг тул доорх байдлаар ажиллуулах юмуу LD_LIBRARY_PATH хувьсагчид libsqlite3.so.0 файлыг хуулсан хавтасныхаа абсолют замыг зааж өгөх гэх зэргээр шийдэж болно.
LD_LIBRARY_PATH=. ./executable_binary
Segmentation fault (core dumped) гээд болохгүй байхад доорхыг суулгаад хэвийн ажиллав.
libssl1.0.0 -ийг Ubuntu 20.04-т суулгах
$ wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl1.0/libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb $ sudo apt install ./libssl1.0.0_1.0.2n-1ubuntu5_amd64.deb
Ингээд sendData файлаа ажиллуулахад эхний удаад алдаа заах ба дахин ажиллуулахад хэвийн болно.