"Татварын PosAPI Linux дээр ажиллуулахад гарах асуудлууд шийдэх"-ны өөр хувилбарууд

Дусал нэвтэрхий толь-с
 
(Хэрэглэгчид 2 дундын хувилбарууд харагдахгүй)
9-р мөр: 9-р мөр:
 
sudo apt install libqt5network5 libqt5networkauth5 libqt5networkauth5-dev libqt5script5
 
sudo apt install libqt5network5 libqt5networkauth5 libqt5networkauth5-dev libqt5script5
 
</pre>
 
</pre>
 
Доорх хуудаснаас '''Linux үйлдлийн системийн нэмэлт сан татах''' гэж орж татна. ''(Энэ үйлдэл гэхдээ яг үнэхээр хэрэгтэй үгүйг мэдэхгүй байна.)''
 
 
https://ebarimt.mn/posapi
 
 
 
Тэгээд татаж авсан архивыг задлаад x64 хавтсан дахь файлуудыг /usr/lib/x86_64-linux-gnu хавтас руу хуулна.
 
  
  
54-р мөр: 47-р мөр:
 
</pre>
 
</pre>
  
 +
libsqlite3 энэ фолдерт задарсан файлуудаас, libsqlite3.so.0.8.6 гэсэн файлыг ажиллуулж буй файлын хавтсанд (эсвэл зохих фолдерт) libsqlite3.so.0 нэртэй болгож хийнэ.
  
libsqlite3 энэ фолдерт задарсан файлуудаас, libsqlite3.so.0.8.6 гэсэн файлыг /usr/lib/x86_64-linux-gnu (эсвэл зохих фолдерт) гэсэн фолдерт хийнэ.
+
Хэрэв дээрх алдаа гарсан хэвээр байвал libsqlite3.so.0 файлыг сонгохгүй байгаа гэсэн үг тул доорх байдлаар ажиллуулах юмуу LD_LIBRARY_PATH хувьсагчид libsqlite3.so.0 файлыг хуулсан хавтасныхаа абсолют замыг зааж өгөх гэх зэргээр шийдэж болно.
 
 
Доорх тушаалаар shortcut-г нь үүсгэнэ.
 
  
 
<pre>
 
<pre>
ln -s libsqlite3.so.0.8.6 libsqlite3.so
+
LD_LIBRARY_PATH=. ./executable_binary
 
</pre>
 
</pre>
 
  
 
'''Segmentation fault (core dumped)''' гээд болохгүй байхад доорхыг суулгаад хэвийн ажиллав.
 
'''Segmentation fault (core dumped)''' гээд болохгүй байхад доорхыг суулгаад хэвийн ажиллав.

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 файлаа ажиллуулахад эхний удаад алдаа заах ба дахин ажиллуулахад хэвийн болно.