본문 바로가기

Tech/라즈베리파이

라즈베리파이 - 텔레그램 설치하기

네이버 공유하기
728x90

라즈베리파이 - 텔레그램 설치하기 


최종 정리.


sudo apt-get install libreadline-dev libconfig-dev libssl-dev lua5.2 liblua5.2-dev libevent-dev libjansson-dev

sudo apt-get install libpython-dev libssl1.0-dev make


git clone --recursive https://github.com/vysheng/tg.git && cd tg


vi tgl/mtproto-utils.c

comment : 101 

파일을 열어서  101 라인, assert(0); 을 주석처리 합니다.


static unsigned long long BN2ull (TGLC_bn *b) {

  if (sizeof (unsigned long) == 8) {

    return TGLC_bn_get_word (b);

  } else if (sizeof (unsigned long long) == 8) {

    // marasong

    //assert (0); // As long as nobody ever uses this code, assume it is broken.

    unsigned long long tmp;

    /* Here be dragons, but it should be okay due to be64toh */

    TGLC_bn_bn2bin (b, (unsigned char *) &tmp);

    return be64toh (tmp);

  } else {

    assert (0);

  }

}


이제 컴파일합니다.


./configure

make


최초 실행하면 번호 인증을 진행합니다. 핸드폰 번호 하나로 여러 디바이스 인증이 가능합니다.


./bin/telegram-cli -k server.pub

phone number: 에서는 +8210 이런 식으로 넣어야 합니다.

그러면 이미 설치된 텔레그램으로 인증번호가 옵니다. 


텔레그램 봇을 사용하기 위해 파이썬 모듈을 설치합니다..


sudo python -m pip install python-telegram-bot


끝 ~


----- 에러 정리 1 -----

텔레그램 실행시 BN2ull 관련 에러가 뜨면 


pi@raspberrypi:~/workspace/tg$ ./bin/telegram-cli -k server.pub

Telegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman

Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type `show_license'.

This is free software, and you are welcome to redistribute it

under certain conditions; type `show_license' for details.

Telegram-cli uses libtgl version 2.1.0

Telegram-cli includes software developed by the OpenSSL Project

for use in the OpenSSL Toolkit. (http://www.openssl.org/)

I: config dir=[/home/pi/.telegram-cli]

[/home/pi/.telegram-cli] created

[/home/pi/.telegram-cli/downloads] created

> telegram-cli: tgl/mtproto-utils.c:101: BN2ull: Assertion `0' failed.

SIGNAL received

vi tgl/mtproto-utils.c : comment : 101 : 이 파일을 열어서  101 라인, assert(0); 을 주석처리 합니다.


static unsigned long long BN2ull (TGLC_bn *b) {

  if (sizeof (unsigned long) == 8) {

    return TGLC_bn_get_word (b);

  } else if (sizeof (unsigned long long) == 8) {

    // marasong

    //assert (0); // As long as nobody ever uses this code, assume it is broken.

...

다시 컴파일 합니다. 


----- 에러 정리 2 -----

컴파일시 openssl 관련 에러가 뜨면


error

tgl/crypto/rsa_pem_openssl.c:41:6: error: dereferencing pointer to incomplete type ‘RSA {aka struct rsa_st}’


패키지 하나를 설치한 다음 다시 컴파일 합니다..


sudo apt-get install libssl1.0-dev


./configure

make







반응형
네이버 공유하기


* 쿠팡 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있습니다.