Guida Installazione e start server metin2

Stato
Discussione chiusa ad ulteriori risposte.

iltizio

Utente Emerald
1 Novembre 2009
929
60
533
598
Ultima modifica da un moderatore:
Premessa

Questa guida indica come installare e startare un server di metin2 nel modo corretto. Cercherò di dare indicazioni valide anche per versioni future dei vari software.

E’ vero che di guide come queste ce ne sono un’infinità solo in questa sezione, ma fanno tutte abbastanza schifo, scritte da ragazzini incompetenti che peggiorano la situazione andando ad insegnare cose sbagliate ai lettori ancora più incompetenti. Ne è la prova gli schifo di server che circolano su questo forum e le continue richieste da parte dei nuovi arrivati di una guida su come startare che vada bene.

Definizioni
Per chi è nuovo nel campo informatico, è giusto spiegare i vari termini che verranno menzionati in questa guida, che sentirete poi durante il vostro percorso di sviluppo e amministrazione del vostro server.

Server: Letteralmente significa “Servitore” cioè un componente in grado di rispondere alle richieste dei client, solitamente via rete. Nel nostro caso il game server è l’applicativo che andrete ad installare sulle vostre macchine per permettere ai vostri player di connettersi e giocare assieme in rete, ovunque essi siano. Il game server ha bisogno di appoggiarsi a database, normalmente si usa un server mysql. Avrete inoltre bisogno di un web server per ospitare il vostro sito, forum e patch.
https://it.wikipedia.org/wiki/Server

Client: Quando ci sono dei server, ci sono anche dei client. Mentre il server rende disponibile ad erogare un certo servizio, il client è quella componente che permette di collegarsi al server e ne elabora/grafica i dati trasmessi. Nel nostro caso il client del game è quel software che va installato su ogni pc dei player per permettergli di giocare.
Può sembrare strano ma anche il game server di metin2 è a sua volta un client (o meglio, utilizza un client integrato). Infatti esso si deve collegare a un server mysql per salvare o raccogliere dati.
https://it.wikipedia.org/wiki/Client

MySQL: è un RDBMS (Relational DataBase Management System) che si occupa di gestire dei database, organizzati a loro volta in tabelle formate da righe (record o tuple) e colonne (campi). E’ un software gratuito e compatibile con la maggior parte dei sistemi operativi. Permette ai software che ne fanno uso (come il game server o il sito) di leggere e scrivere dati rapidamente sfruttando meglio le risorse hardware a disposizione. Sono in grado di eseguire alcuni calcoli, per semplificare la vita agli sviluppatori. Esistono diverse Fork di MySQL, atti a perfezionare il software originale, in quanto open source. Il fork più famoso e preferito è MariaDB, destinato a sostituire MySQL di proprietà di Oracle.
https://it.wikipedia.org/wiki/MySQL

Storage Engine: I DBMS, come mysql, devono immagazzinare i dati secondo un certo ordine, per migliorarne le performance. I principali Storage Engine per MySQL sono MyISAM e InnoDB. Metin2 di default utilizza MyISAM, un vecchio storage engine sensibile ai crash e con diversi problemi, ma molto veloce in lettura. Con altri fork come MariaDB potrete trovare dei nuovi storage engine evoluti da mysql, come Aria e XtraDB che sostituiscono i sopra citati storage engine.
https://it.wikipedia.org/wiki/Storage_Engine

Query: Letteralmente significa “interrogazione”. Sono dei particolari codici che vengono utilizzati per comunicare con i DBMS. Nel caso di MySQL si tratta di Query in linguaggio SQL. Il linguaggio SQL funziona in modo simile ad un linguaggio di programmazione, e attraverso delle istruzioni chiave, permette ad un umano (programmatore o amministratore) di interagire con il DBMS per leggere e scrivere dati, ma anche per modificare la struttura dei database e del loro contenuto.
https://it.wikipedia.org/wiki/Query

C++: E’ un linguaggio di programmazione avanzato, derivato dal C. Tutti i sistemi operativi e kernel che conoscete sono scritti in C o C++. I sorgenti del game server di metin2 sono scritti in C++. Per poter eseguire applicazioni scritte in C++ è necessario compilare con appositi software, che in sostanza traducono dal linguaggio di programmazione al linguaggio macchina (composto da bit quasi illeggibili da un umano).

Lua: E’ un linguaggio di scripting, utilizzato prevalentemente nei giochi. Nel caso di Metin2, il lua è usato per creare le quest. Non è necessario compilare i codici sorgenti del lua, in quanto vengono interpretati ogni volta da un altro software, nel nostro caso il game server di metin2.

Python: Un’altro linguaggio di programmazione, ma non necessita di essere compilato in fase di deploy come il C++. Nel nostro caso, Metin2 si avvale di Python 2 per il client. Infatti nei pack trovati numerosi file .py contenenti i sorgenti in chiaro del client. Vengono interpretati dal launcher, con l’ausilio di librerie, scritto in C++ e compilato.

Shell: E’ una delle componenti principali di un sistema operativo. Vi permette di lanciare comandi per amministrare il sistema o creare alcuni script per il sistema operativo. Nel nostro caso è fondamentale, in quanto andremo ad utilizzare FreeBSD che viene gestito prevalentemente da linea di comando, attraverso appunto una shell. Ci sono diversi tipi di shell con differenti comandi e sintassi. FreeBSD di default usa la csh. Un esempio di shell script è lo script di start o stop del vostro server di metin2 (di solito).

File server: con file server solitamente si intende i file che compongono il game server di metin2, tra cui le configurazioni, le quest, localizzazione, mappe (lato server) ecc.

File game: Sono i binari, compilati dai sorgenti di metin2 scritti i C++, che andrete ad eseguire sulla vostra macchina e provvederanno ad orchestrare tutte le parti che compongono il game server. In sostanza è il cuore dei game server di metin2. Sono composti da 2 binari separati: il game e il db.
Possono essere compilati dai sorgenti.

Source: Il nome completo è Codice Sorgente e sono i sopra citati sorgenti in C++ che compongono i file game. Sono disponibili solo dalla revisione 40k, assieme ai sorgenti del client (launcher).

Macchina: Con questo termine si intende il computer fisico o virtuale, composto da sistema operativo e tutto il necessario per eseguire il vostro server di metin2 o il client.

VPS e Server Dedicati: Sono delle macchine, virtuali o fisiche che vi permettono di eseguire software, nel nostro caso andranno ad eseguire i game server, mysql e i web server. Maggiori dettagli: https://www.inforge.net/xi/threads/...gurare-una-macchina-server-per-metin2.451780/

Preparazione
Prima di procedere avrete bisogno di materiale e qualche dritta.
Avrete bisogno di:
  • File server
  • File game
  • Databases
  • Client
  • Macchina
  • Cervello
  • Pazienza

I file server, file game, database e client solitamente vengono forniti assieme. Li potete trovare sia gratis nei vari forum, che a pagamento. Esistono diverse versioni dei file game, l’ultima disponibile al momento è la revision 40k, dei quali disponiamo anche dei sorgenti, come sopra citato. Si consiglia fortemente, in qualunque caso di utilizzare solo questa revision, se possibile con relativi sorgenti, per questione di bug, implementazioni e sicurezza.

Gratis o a pagamento? Se siete bravi a programmare e conoscete il C++, e sopratutto avete molto tempo, non è una cattiva idea partire da una base gratuita e fixare i vari bug e rimuovere falle di sicurezza. Per i restanti, se volete fare un progetto serio, è consigliabile l’acquisto di pacchetti pronti e già sbuggati da chi è competente. Scegliete con cura a chi vi affidate, perchè, sopratutto in italia, è pieno di truffatori.

Per chi vuole acquistare file già pronti, consultate la seguente lista di venditori italiani: https://www.inforge.net/xi/threads/lista-consulenti-metin2.462604/

Riguardo ai database, una sola nota. Oltre ad assicurarvi che siano compatibili con la revision scelta per i file game, verificate che vi vengano consegnati tramite dump e non datafile.
I dump sono file contenenti molte query SQL che ricostruiranno nel modo corretto, tenendo conto della versione utilizzata, sia la struttura dei database che i dati stessi. Diffidate da chi vi fornisce i datafile, cioè le cartelle sotto /var/db/mysql
https://www.inforge.net/xi/threads/...p-migrazione-restore-di-mysql-mariadb.453407/

La macchina dovrà avere alcune caratteristiche. Inanzitutto dovrà ospitare come sistema operativo FreeBSD per architetture ix86 o amd64. Utilizzate l’ultima versione disponibile di FreeBSD, che potete scaricare dal sito ufficiale. Da questo link verificare qual’è l’ultima versione di produzione disponibile https://www.freebsd.org/

Per la macchina per il server di metin2 ci sono diverse possibilità. Se dovete solo sviluppare da soli e fare qualche test in solitaria, potete usare una macchina virtuale eseguita dal vostro PC, se il vostro PC è sufficientemente potente (tanta ram e buona CPU). Quando dovrete testare con più persone o lavorate con diversi sviluppatori è consigliabile affittare un piccolo VPS o un piccolo Dedicato. Consiglio dai 2 ai 4GB di ram per i test. Mentre se dovete aprire al pubblico è utile farlo bene acquistando una buona coppia di VPS o meglio ancora di Semi-Dedicati. Alternativamente potrete optare per dei Dedicati. Vi invito a leggere questa guida per poter scegliere meglio: https://www.inforge.net/xi/threads/...igurare-una-macchina-server-per-metin2.451780
Per aiutarvi vi ho preparato una lista di provider adatti a metin2:
https://www.inforge.net/xi/threads/lista-hosting-per-metin2.460692/

Prima di proseguire vi invito a leggere la raccolta di guide e linee guida creata appositamente per iniziare nuovi progetti di metin2: https://www.inforge.net/xi/threads/raccolta-come-creare-un-progetto-di-metin2.467749/

Creazione macchina virtuale
Potete creare la vostra macchina virtuale con Virtual Box, scaricando la iso del sistema operativo dal sito di freebsd: https://www.freebsd.org/where.html Consiglio di utilizzare l’architettura amd64 (64 bit), se il vostro PC la supporta, in alternativa, usate la i386 (32bit).

Create la VM e installate il sistema operativo. E’ facile e intuitivo, con diversi wizard grafici che vi guideranno. Non spendo parole su come fare questa parte, anche perchè variano per ogni versione.

Dopo aver installato la VM, va preparata per ospitare il game server.

Se siete pigri o avete qualche difficoltà, potete trovare una VM già pronta con tutto l’occorrente per eseguire il vostro game server qua: https://www.inforge.net/xi/threads/release-vm-ready-to-start-metin2-server.461269/

Installazione dipendenze
Una volta installata la VM o acquistata la VPS, Semi-dedicato o Dedicato potete procedere con l’installazione dei software e librerie necessarie.
Questa parte può essere omessa se avete scaricato/acquistato una macchina già pronta come la VM ready to start citata prima oppure macchine come nella gamma indicata qua: https://www.iltizioservice.it/index.php/it/hosting2/vps-metin2


1.Creazione utenza applicativa
E’ buona norma per i sistemi *nix come FreeBSD dedicare un utenza all’applicativo, per una più facile gestione.
Io di solito la chiamo mt2, ma potete dargli il nome che volete.
  1. Collegatevi ad una shell via SSH o console con utenza root e digitate il seguente comando:
    Bash:
    pw useradd mt2 -g wheel -m -c “Metin2 game server” -d <base directory dei file server>
    Al posto di <base directory dei file server> mettete il percorso assoluto dei vostri file server. Questo dipende da come sono settati i file, quindi rifatevi alla documentazione dei file che avete.
    Esempio /usr/game
  2. Per settare la password all’utenza creata, per accedere direttamente eseguire questo comando:
    Bash:
    passwd mt2
    E inserite 2 volte la password scelta.

2. Installazione MySQL/MariaDB
I server di metin2 necessitano di immagazzinare i dati di gioco e di reperirli rapidamente. Ai tempi hanno scelto MySQL per questo compito. Per fortuna MySQL è ancora ben supportato e molto utilizzato anche per nuove installazioni. Inoltre è gratuito e di facile utilizzo.

L’originale MySQL di Oracle, tuttavia, è rimasto un po’ indietro su alcuni aspetti. Per questo motivo sono stati creati diversi fork di MySQL, anche dagli stessi sviluppatori di MySQL, come nel caso di MariaDB.

Consiglio quindi di utilizzare MariaDB come dbms per il vostro server, ma potete comunque usare lo stesso il classico MySQL. Ricordatevi però di scegliere sempre l’ultima versione disponibile del software. Diffidate da chi vi dice di installare vecchie versioni di MySQL o MariaDB.

Maggiori informazioni su MariaDB: https://www.inforge.net/xi/threads/installare-mariadb-al-posto-di-mysql.452196/

Riporto la sola parte di installazione del software:

Attualmente l’ultima versione di MariaDB è la 10.1, ma assicuratevi di installare l’ultima versione disponibile.
  1. Aggiorna l’alberatura dei ports per installare le ultime versioni dei software:
    Bash:
    portsnap fetch update
  2. Installa MariaDB all’ultima versione:
    Bash:
    csh
    set VERSION=`ls -d /usr/ports/databases/mariadb*-server/ | grep -o '[0-9]\+' | sort -n | tail -1`
    cd /usr/ports/databases/mariadb$VERSION-server && make INNOBASE=on install clean
    exit
    è cosa buona leggere e selezionare le opzioni proposte in fase d'installazione delle dipendenze. Deselezionate ad esempio l'installazione della documentazione (doc) dei software proposti che non ve ne farete niente e occupano un sacco di spazio inutilmente.
  3. Abilita il servizio MariaDB server e starta il servizio:
    Bash:
    echo "mysql_enable=YES" >> /etc/rc.conf
    service mysql-server start
  4. Ora iniziamo una prima configurazione. Esegui questo comando:
    Bash:
    mysql_secure_installation
    Dovrebbe iniziare una wizard che vi consentirà di fare un primo setting a livello di sicurezza il vostro server MariaDB.
    Vi chiederà di inserire la password corrente dell’utente root, che attualmente non è impostata, quindi premete semplicemente invio.
    Vi consiglio quindi di seguire la procedura guidata rimuovendo gli utenti anonimi, il database di test e ovviamente settate la password per l’utente root.
  5. Loggatevi a MariaDB da linea di comando e create l’utente root per accesso remoto e l’utente mysql applicativo (che io ho chiamato “game”):
    Bash:
    mysql -u root -p -e "FLUSH PRIVILEGES; CREATE USER 'root'@'%' IDENTIFIED BY 'la_tua_password'; GRANT ALL ON *.* TO 'root'@'%'  WITH GRANT OPTION ; CREATE USER 'game'@'localhost' IDENTIFIED BY 'la_tua_password'; flush privileges; "
    Sostituite ovviamente la_tua_password con una password valida che scegliete voi. Sarebbe meglio utilizzare due password diverse, una per game e una per root.
    Per maggior sicurezza, sarebbe opportuno limitare il login solo da alcuni ip. Per farlo invece di mettere % nel campo host, mettete l’ip.
    Date invio e vi chiederà di inserire la vostra password di root, impostata al punto 5.

Installazione Metin2
Ora che il vostro sistema è pronto per ospitare il vostro server di metin2, possiamo procedere finalmente con l’installazione dei database e file di metin2.

1. Import databases
Questa parte è molto variabile a seconda di come sono stati fatti i dump dei database.
Per importare i database da dei file dump, avete più opzioni:
  1. Import da linea di comando. Qui potete caricare i vostri dump in una cartella temporanea sulla vostra nuova macchina, ad esempio via SFTP.
    Ora potete usare le utility del client mysql da linea di comando. Esempio:
    Bash:
    mysql -u root --password="La_tua_password"  account < account.sql
    In questo modo verranno importate le tabelle del database account. Ripeto, questo dipende da come sono stati creati i dump.
  2. Import da Navicat. Navicat fa un po’ tutto. Potete anche eseguire file sql tramite interfaccia grafica:
    2C73t3iqzFk0shotMYc5vqCm57e67AuEP1GkiYOdJkd-AsPnERGRFBR26QwCM_pYtxlPSOAXKBYM5NDNbTQVg2N50-hfhon7sDHwCldQg4xVusa48gSw-SAHj9cGEa3VG0IPyFY1
Maggiori informazioni: https://www.inforge.net/xi/threads/...p-migrazione-restore-di-mysql-mariadb.453407/

Una volta importati tutti i database applicativi, potete procedere a settare i permessi dell’utenza mysql applicativa dedicata a metin2 (quella che prima ho chiamato game).
Aiutatevi con Navicat per questa parte, altrimenti consultate la documentazione ufficiale di mysql per la gestione dei permessi (GRANT).
  1. Collegatevi con Navicat al vostro server MySQL/MariaDB
  2. In alto a sinistra, selezionate la voce User e selezionate l’utente applicativo creato prima con doppio click.
  3. Recatevi nella tab privileges e impostate i permessi strettamente necessari al game.
    Generalmente bastano Select, Insert, Update, Delete, Trigger.
    Selezionate solo i database applicativi che avete importato prima.

2. Installazione file metin2
Anche qui dipende da come vi sono stati forniti i file, ma solitamente il procedimento è questo:
  1. Caricate l’archivio tar in una cartella temporanea sulla vostra macchina. Esempio mettetelo su /tmp
  2. Estraete l’archivio nella home directory del vostro game server con utente root.
    Bash:
    tar -xf /tmp/<archivio> -C ~mt2
    Dove <archivio> è il nome dell’archivio tar dei file e mt2 è l’utente applicativo che avevate creato prima.
  3. Settate i corretti permessi ai file:
    Bash:
    chown -R mt2:wheel ~mt2
  4. Trovare i vari file di CONFIG e config.txt per modificare le credenziali di autenticazione a mysql con le vostre:
    Bash:
    csh
    set NEW="game password"
    set OLD=`find ~mt2 -type f  -name 'conf.txt' | xargs grep SQL_ACCOUNT | head -1 | awk '{print $5,$6;}'`
    find ~mt2 -type f -name "CONFIG" -o -name "conf.txt" -exec sed -i '' "s/$OLD/$NEW/g" {} \;
    exit
    Modificare la seconda riga con il tuo nome utente e password creati quando hai installato mysql
3. Installazione librerie

Ora c’è una parte che per molti può risultare complicata. Vi spiego un metodo rapido e abbastanza pulito per trovare e installare le librerie mancanti.

Ora verificare le librerie necessarie mancanti per eseguire i binari game e db. Localizzare i due binari e eseguire il seguente comando:
Bash:
ldd game | grep "not found"
Dove game è il file binario da controllare (game e db)
Se non restituisce output significa che è tutto apposto, altrimenti dovete procurarvi le librerie mancanti e installarle sul vostro sistema. Ricordatevi della differenza tra 32bit e 64.
Per verificare se il binario è compilato come eseguibile 32bit o 64bit lanciare questo comando:
Bash:
file game
Dove game è il percorso del binario (game o db).
Con questo comando inoltre vedete da quale sistema è stato compilato (versione di FreeBSD) che vi servirà per installare le librerie di compatibilità.
Le librerie 32bit andranno installate in /usr/local/lib32 o /usr/lib32, mentre le 64 bit in /usr/local/lib o /usr/lib
Non sostituite MAI le lib, se ci sono già lasciatele lì.
È possibile che abbiate già alcune librerie installate, ma ad una versione diversa. Fate semplicemente un link simbolico dal file della lib che avete con il nome esatto della libreria richiesta.
ln -s lib_presente.so lib_presente.so.numeroversione

Esempio:
Bash:
# ldd game | grep "not found"
       libjbig.so.1 => not found (0)
       libjbig.so.1 => not found (0)
# file game
game: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 9.2, stripped
In questo caso vanno installate le librerie di compatibilità per i sistemi della versione 9.x, se non l’avete già fatto:
Bash:
cd /usr/ports/misc/compat9x/ && make install clean
Riprovare quindi con il comando ldd di prima per vedere se ha installato le librerie corrette.
Se ancora non è sufficiente dovrete trovare la libreria, 32 bit in questo caso, e installarla nella cartella /usr/local/lib32
Le librerie più comuni 32bit ve le ho raccolte qua, e le potete installare facilmente così:
Bash:
ln -s /usr/lib32/libssl.so /usr/lib32/libssl.so.6
cd /usr/lib32
fetch http://download.iltizioservice.it/lib_metin2/lib32/libIL.so.2
fetch http://download.iltizioservice.it/lib_metin2/lib32/libjasper.so.4
fetch http://download.iltizioservice.it/lib_metin2/lib32/libjbig.so.1
fetch http://download.iltizioservice.it/lib_metin2/lib32/libjpeg.so.11
fetch http://download.iltizioservice.it/lib_metin2/lib32/liblcms.so.1
fetch http://download.iltizioservice.it/lib_metin2/lib32/libmng.so.1
fetch http://download.iltizioservice.it/lib_metin2/lib32/libmysqlclient.so.18
fetch http://download.iltizioservice.it/lib_metin2/lib32/libpng15.so.15
fetch http://download.iltizioservice.it/lib_metin2/lib32/libstdc++.so.6
fetch http://download.iltizioservice.it/lib_metin2/lib32/libtiff.so.4
Lanciate solo i comandi riguardanti le lib mancanti. Non sostituite MAI le lib.

Se il comando ldd non trova altre librerie mancanti dovreste poter avviare il vostro server di metin2!

4. Start
L’avvio dipende dai file che avete installato. Solitamente sono presenti degli script per lo start/stop guidato. Eseguiteli sempre con l’utenza applicativa creata in precedenza.

Esempio:
Bash:
su - mt2
./start.sh

5. Setup client
Ora non vi rimane altro che configurare il client, secondo le istruzioni fornitevi da chi vi ha dato il materiale. Solitamente c’è ma modificare il file serverinfo.py, presente nella pack root.
Dovrete impostare l’ip del vostro server e le relative porte, che trovate nei file di configurazione:
Bash:
find ~mt2 -type f -name "CONFIG"

Troubleshooting
In caso di problemi analizzate i vari log dell’applicativo e mysql e cercate gli errori su google per trovare le soluzioni proposte. Siete fortunati che metin2

Nel caso aprite un thread nella sezione corrispondente su inforge, inserendo tutte le informazioni necessarie.
 
C++: E’ un linguaggio di programmazione avanzato, molto utilizzato, con il quale sono scritti tutti i sistemi operativi e kernel che conoscete

Non so che sistemi operativi conosci te, ma il kernel linux (e di conseguenza ogni distribuzione, ogni android, ecc ecc) è ad esempio scritto in C (e un po' di assembly).
Windows NT (il kernel di windows) è C++, C e un po' di assembly.
Il kernel Unix inizialmente programmato in assembly (dai creatori, guarda un po', del linguaggio C) è stato poi appunto riscritto in C (linguaggio che fu creato proprio per questo scopo).

Per quanto riguarda il discorso 32 o 64bit è da sottolineare il fatto che la robaccia che si trova online è SEMPRE compilata a 32 bit, perché, per chi non lo sapesse, compilare a 64bit richiede molte modifiche da effettuare nei sorgenti (niente di straordinario, solo cambi alla tipizzazione delle variabili, ma è un lavoro lungo, anche se automatizzabile, che per quel che so non è stato fatto nei file spazzatura che si trovano online).
 
Ultima modifica:
1) Compilare via source mysql/mariadb è solo time-wasting, soprattutto perché non specifichi di installare anche big5/euckr, quindi si può semplicemente installare la pre-compiled version: (mariadb, nel tuo caso)
pkg install mariadb101-server
In extremis, potrebbe essere necessario forzare (nei source normali) su db/conf.txt il charset se da l'errore "euckr charset not found" quando starta db:
LOCALE = latin1
2) Rimpiazzare manualmente le lib in un server può essere catastrofico. Se si rimpiazza erroneamente una .so di sistema già presente, si può shuttare di colpo la macchina e perma-buggarsi al boot.
Se ho già presente nella macchina libstupenda.so.4, ma il mio game vuole libstupenda.so.3, un banale symlink è safe:
ln -s libstupenda.so.4 libstupenda.so.3
Anche se... nel 99% dei casi se si compila con il flag -static non bisogna poi cercare lib.
Quelle di libdevil bisognerebbe linkarle staticamente dai source... come nei game core degli ufficiali.
3) Per evenienza, prima di avviare (e/o reinstallare) mysql, si fa: (dovrebbe essere lo stesso per mariadb)
Codice:
pwd_mkdb -p /etc/master.passwd
chown -R mysql /var/db/mysql/
chgrp -R mysql /var/db/mysql/
Perché si bugga tendenzialmente in molte macchine presettate.
 
Very good @iltizio .
Ultimamente in molti hanno postato discussioni in cerca di aiuto sull'argomento.
Ottimo tempismo :)

Inviato dal mio LG-D855 utilizzando Tapatalk
 
Non so che sistemi operativi conosci te, ma il kernel linux (e di conseguenza ogni distribuzione, ogni android, ecc ecc) è ad esempio scritto in C (e un po' di assembly).
Windows NT (il kernel di windows) è C++, C e un po' di assembly.
Il kernel Unix inizialmente programmato in assembly (dai creatori, guarda un po', del linguaggio C) è stato poi appunto riscritto in C (linguaggio che fu creato proprio per questo scopo).

Per quanto riguarda il discorso 32 o 64bit è da sottolineare il fatto che la robaccia che si trova online è SEMPRE compilata a 32 bit, perché, per chi non lo sapesse, compilare a 64bit richiede molte modifiche da effettuare nei sorgenti (niente di straordinario, solo cambi alla tipizzazione delle variabili, ma è un lavoro lungo, anche se automatizzabile, che per quel che so non è stato fatto nei file spazzatura che si trovano online).
1) Compilare via source mysql/mariadb è solo time-wasting, soprattutto perché non specifichi di installare anche big5/euckr, quindi si può semplicemente installare la pre-compiled version: (mariadb, nel tuo caso)
pkg install mariadb101-server
In extremis, potrebbe essere necessario forzare (nei source normali) su db/conf.txt il charset se da l'errore "euckr charset not found" quando starta db:
LOCALE = latin1
2) Rimpiazzare manualmente le lib in un server può essere catastrofico. Se si rimpiazza erroneamente una .so di sistema già presente, si può shuttare di colpo la macchina e perma-buggarsi al boot.
Se ho già presente nella macchina libstupenda.so.4, ma il mio game vuole libstupenda.so.3, un banale symlink è safe:
ln -s libstupenda.so.4 libstupenda.so.3
Anche se... nel 99% dei casi se si compila con il flag -static non bisogna poi cercare lib.
Quelle di libdevil bisognerebbe linkarle staticamente dai source... come nei game core degli ufficiali.
3) Per evenienza, prima di avviare (e/o reinstallare) mysql, si fa: (dovrebbe essere lo stesso per mariadb)
Codice:
pwd_mkdb -p /etc/master.passwd
chown -R mysql /var/db/mysql/
chgrp -R mysql /var/db/mysql/
Perché si bugga tendenzialmente in molte macchine presettate.

Grazie a entrambi del contributo. Ho provveduto ad aggiornare la guida.

Riguardo ai ports, io consiglio sempre di installare tramite ports. In questo modo vedi le opzioni disponibili e rimuovi/aggiungi roba. Inoltre installi correttamente le dipendenze.
Mi ero dimenticato di aggiungere l'installazione della compatibilità con InnoDB, che di default è disattivata.
Per il charset non ne sono sicuro, ma mi pare che sia già disponibile con quella versione di MariaDB. Per ora non posso verificare.

Ho chiarito meglio la questione delle lib. Non avevo scritto di sostituire, pensavo uno ci arrivasse da solo che se la lib c'è già non va sostituita. Se me l'hai fatto notare significa che dalla tua esperienza hai avuto a che fare con gente che sostituisce lib a ca**o.

Per disinstallare una vecchia installazione di mysql bisogna rimuovere manualmente anche altra roba, come lo script del servizio e la data directory. Questa guida è dedicata a vps vergini o già predisposte correttamente. Sistemerò la guida dedicata a MariaDB.
 
La guida presenta la mancanza di molti passaggi "essenziali" senza i quali il server non si avvierà mai e poi MAi.
Personalmente ho seguito la guida per filo e per segno ritrovandomi alla fine a dover formattare il Dedicato.
Ciao, come hanno fatto gli altri, saresti così gentile da specificare i passaggi mancanti, così da integrarli e renderli disponibili anche agli altri utenti?
Grazie.
 
Ultima modifica:
SC.png

Se non si esegue prima il comando " portsnap fetch extract " il comando che hai scritto, non funzionerà mai.
SC1.png

Una volta arrivati al terzo comando: Il comando "funziona" per cosi dire, peccato che come risposta da vari errori ->
SC2.png

I comandi che vengono elencati successivamente nella guida non funzionano di conseguenza :
SC3.png

Non mi pare d'aver visto una spiegazione riguardante la parte dei "dump dei database". E/o il come crearli.
SC4.png

"L'archivio tar" Eh, scusami: Senza una spiegazione del come creare questo archivio e del cosa metterci dentro è difficile proseguire.
SC5.png

Non mi è stato possibile spingermi oltre visti i vari passaggi mancanti che si sono presentati fin dall'inizio.
Fin alla parte dell'installazione dei file di metin2 ci sono arrivato cercando su Internet, però alla fine dopo aver trovato tante opinioni e modi di fare (Non funzionanti) mi ritrovo ancora con il punto interrogativo del "Cosa metterci in questo archivio" ( Solo ed esclusivamente perché' in alcune guide dicono di caricare alcuni file ed in altre scrivono la stessa identica cosa che hai scritto te "senza dare una spiegazione del cosa si deve caricare veramente". )
 
Ti rispondo per punti.
Prima però ti riporto quello che devi avere per iniziare:
  • File server
  • File game
  • Databases
  • Client
  • Macchina
  • Cervello
  • Pazienza

Visualizza allegato 26171
Se non si esegue prima il comando " portsnap fetch extract " il comando che hai scritto, non funzionerà mai.
Parzialmente vero. Per eseguire l'update dei ports devi prima averli estratti, anche in una versione vecchia. Infatti se leggi bene c'è scritto "Aggiorna l’alberatura dei ports per installare le ultime versioni dei software", se non ce l'hai cosa aggiorni. Non mi sembrava il caso di riportare anche il comando di extract in quanto se ti da errore l'update ti dice anche che comando lanciare per risolverlo.

Visualizza allegato 26172
Una volta arrivati al terzo comando: Il comando "funziona" per cosi dire, peccato che come risposta da vari errori ->
Visualizza allegato 26173
Ovviamente la guida è riferita a sistemi installati con impostazioni di default, quindi di conseguenza con repository di default, cioè quelli ufficiali stable. Se cambi i repository con robe strane o non compatibili con il sistema che usi non puoi pretendere che ti funzioni al primo colpo. Rimetti i repository ufficiali se non sai come risolvere.

Non mi pare d'aver visto una spiegazione riguardante la parte dei "dump dei database". E/o il come crearli.
Visualizza allegato 26175

"L'archivio tar" Eh, scusami: Senza una spiegazione del come creare questo archivio e del cosa metterci dentro è difficile proseguire.
Visualizza allegato 26176
Leggi tutta la guida, anche la parte iniziale con i prerequisiti. Questa non è una guida su come sviluppare da 0 un server di metin2. In quel caso non avresti certamente bisogno di guide come questa.
Non mi è stato possibile spingermi oltre visti i vari passaggi mancanti che si sono presentati fin dall'inizio.
Fin alla parte dell'installazione dei file di metin2 ci sono arrivato cercando su Internet, però alla fine dopo aver trovato tante opinioni e modi di fare (Non funzionanti) mi ritrovo ancora con il punto interrogativo del "Cosa metterci in questo archivio" ( Solo ed esclusivamente perché' in alcune guide dicono di caricare alcuni file ed in altre scrivono la stessa identica cosa che hai scritto te "senza dare una spiegazione del cosa si deve caricare veramente". )
Se nessuna guida ti funziona, ma migliaia di persone hanno aperto server di metin2 dovresti farti qualche domanda. Probabilmente non hai letto bene o sei partito bruciando le tappe. Se fossero guide scritte da pochi giorni potrebbero essere anche sbagliate, ma se esistono da un po' di mesi e vedi feedback dovresti capire che forse il problema sei tu e non la guida.
 
"Se cambi i repository con robe strane o non compatibili con il sistema che usi non puoi pretendere che ti funzioni al primo colpo. Rimetti i repository ufficiali se non sai come risolvere. "
L'utilizzo di determinati termini e/o l'attualizzazione e l'esecuzione di alcuni comandi senza dare una spiegazione di quest'ultimi è di un utilità limitata.
( Solo per essere corretti: Anche adesso non hai specificato la procedura.)
"Leggi tutta la guida, anche la parte iniziale con i prerequisiti. Questa non è una guida su come sviluppare da 0 un server di metin2. In quel caso non avresti certamente bisogno di guide come questa."
Il nome della guida è "installazione e start server metin2", non mi pare che ci sia scritto "Avanzata".
Tutte le persone che sono alle prime armi si ritroveranno con problemi del genere.
Se la tua guide è dedicata solo ed esclusivamente a chi già ne sa più di qualcosa, ti chiedo gentilmente di specificarlo nel nome inserendo
"Avanzata" o "Guida Avanzata".
La guida ha funzionato per persone che già ne sapevano qualcosa e che probabilmente hanno già usato sistemi FreeBSD e/o simili.
( Ho seguito la guida interamente utilizzando un Dedicato con Free BSD 10.3 di nuova installazione , quindi evita di dire che ho modificato file e/o percorsi delle cartelle/dei file. )
 
"Se cambi i repository con robe strane o non compatibili con il sistema che usi non puoi pretendere che ti funzioni al primo colpo. Rimetti i repository ufficiali se non sai come risolvere. "
L'utilizzo di determinati termini e/o l'attualizzazione e l'esecuzione di alcuni comandi senza dare una spiegazione di quest'ultimi è di un utilità limitata.
Tutti quei termini e comandi li dovresti già conoscere se sei arrivato a questo punto. Altrimenti fermati e fai un passo indietro. Non stra fare, vai per gradi.
( Solo per essere corretti: Anche adesso non hai specificato la procedura.)
Questo non è il thread corretto per queste domande e non è nemmeno la sezione corretta.
"Leggi tutta la guida, anche la parte iniziale con i prerequisiti. Questa non è una guida su come sviluppare da 0 un server di metin2. In quel caso non avresti certamente bisogno di guide come questa."
Il nome della guida è "installazione e start server metin2", non mi pare che ci sia scritto "Avanzata".
Tutte le persone che sono alle prime armi si ritroveranno con problemi del genere.
Se la tua guide è dedicata solo ed esclusivamente a chi già ne sa più di qualcosa, ti chiedo gentilmente di specificarlo nel nome inserendo
"Avanzata" o "Guida Avanzata".
Questa è chiaramente una guida per principianti ed è costruita apposta per loro. Fa parte di quella serie di tutorial necessari per aprire un server privato di metin2. Se per te risulta avanzata, significa che hai saltato le precedenti guide e relativi requisiti. Riparti dall'inizio e leggi bene tutto senza saltare pezzi. Non partire da metà per poi lamentarti che non funziona, parti dall'inizio.
La guida ha funzionato per persone che già ne sapevano qualcosa e che probabilmente hanno già usato sistemi FreeBSD e/o simili.
Esattamente. Come tutte le cose si parte dall'inizio, non da metà.
Gli altri hanno prima imparato come si cammina, poi a correre e infine a saltare. Dopodichè avevano i requisiti per imparare la disciplina del salto in lungo.
Tu vuoi già partire dal salto in lungo, senza nemmeno aver imparato a camminare.
( Ho seguito la guida interamente utilizzando un Dedicato con Free BSD 10.3 di nuova installazione , quindi evita di dire che ho modificato file e/o percorsi delle cartelle/dei file. )
Primo: se avessi seguito davvero la guida non avresti installato una vecchia versione o comunque non saresti rimasto a quella e avresti fatto un update.
Secondo: se tu non sei stato a cambiare il repository (ammesso che sia quello il problema), chi l'ha fatto? Chi ha messo mano al tuo sistema? Chi te l'ha installato?
Invece di perdere tempo, verifica e risolvi. Se hai bisogno di supporto per queste cose, utilizza le sezioni corrette del forum, contatta il supporto del tuo hosting, se lo prevede, o paga un supporto esterno.

Riassumendo: prima di leggere questa guida devi leggerne molte altre, se non vuoi avere problemi facilmente evitabili.
 
Tutti quei termini e comandi li dovresti già conoscere se sei arrivato a questo punto. Altrimenti fermati e fai un passo indietro. Non stra fare, vai per gradi.

Questo non è il thread corretto per queste domande e non è nemmeno la sezione corretta.

Questa è chiaramente una guida per principianti ed è costruita apposta per loro. Fa parte di quella serie di tutorial necessari per aprire un server privato di metin2. Se per te risulta avanzata, significa che hai saltato le precedenti guide e relativi requisiti. Riparti dall'inizio e leggi bene tutto senza saltare pezzi. Non partire da metà per poi lamentarti che non funziona, parti dall'inizio.

Esattamente. Come tutte le cose si parte dall'inizio, non da metà.
Gli altri hanno prima imparato come si cammina, poi a correre e infine a saltare. Dopodichè avevano i requisiti per imparare la disciplina del salto in lungo.
Tu vuoi già partire dal salto in lungo, senza nemmeno aver imparato a camminare.

Primo: se avessi seguito davvero la guida non avresti installato una vecchia versione o comunque non saresti rimasto a quella e avresti fatto un update.
Secondo: se tu non sei stato a cambiare il repository (ammesso che sia quello il problema), chi l'ha fatto? Chi ha messo mano al tuo sistema? Chi te l'ha installato?
Invece di perdere tempo, verifica e risolvi. Se hai bisogno di supporto per queste cose, utilizza le sezioni corrette del forum, contatta il supporto del tuo hosting, se lo prevede, o paga un supporto esterno.

Riassumendo: prima di leggere questa guida devi leggerne molte altre, se non vuoi avere problemi facilmente evitabili.
Non tendo a commentare le guide "senza" averle lette prima. :megaomg::megaomg::megaomg:
( PS: Per la cronaca, ho letto anche le altre tue guide ) :patt:
 
io non riesco a installare maria db....

che comando devo usare scusate?
 
Stato
Discussione chiusa ad ulteriori risposte.