"Татварын 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 зөрөөд байсан байна.'''
Ubuntu 18.04 дээр libsqlite3-0 (3.22) хувилбар
 
Ubuntu 14.04 дээр libsqlite3-0 (3.8) хувилбар нь тохируулагдсан байдаг юм байна.
 
  
Тэгэхээр хуучин 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 нэртэй болгож хийнэ.
$ dpkg -x libsqlite3-0_3.8.2-1ubuntu2.1_amd64.deb libsqlite3
+
 
 +
Хэрэв дээрх алдаа гарсан хэвээр байвал 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-т суулгах'''
  
libsqlite3 энэ фолдерт задарсан файлуудаас, libsqlite3.so.0.8.6 гэсэн файлыг /usr/lib/x86_64-linux-gnu (эсвэл зохих фолдерт) гэсэн фолдерт хийнэ.
+
<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>
  
доорх коммандаар shortcut-г нь үүсгэнэ.
+
Ингээд sendData файлаа ажиллуулахад эхний удаад алдаа заах ба дахин ажиллуулахад хэвийн болно.
ln -s libsqlite3.so.0.8.6 libsqlite3.so
 
 
  
  

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