BSD FreeBSD Metin2 Kurulum Scripti (Tam Otomatik)

razuning

Premium Üye
Premium Üye
MT Üye
Mesaj
246
Çözümler
4
Beğeni
228
Puan
765
Ticaret Puanı
1
Bu script, FreeBSD üzerinde Metin2 sunucusu kurulumunu kolaylaştırmak ve gerekli tüm bileşenleri otomatik şekilde hazırlamak için geliştirilmiştir. FreeBSD’ye yeni başlayanlar veya hızlı bir kurulum isteyenler için pratik ve sorunsuz bir çözümdür.

Freebsd 13 ve sürümleri için uygundur.

Ekran görüntüsü 2025-11-14 044228.webp


İndirme linki ;
Bash:
Genişlet Daralt Kopyala
#!/bin/sh

ok()   { echo "OK: $1"; }
err()  { echo "HATA: $1"; }
warn() { echo "UYARI: $1"; }
info() { echo "BILGI: $1"; }

MYSQL_CLIENT_URL="http://45.155.159.254/FreeBSD:12:amd64/quarterly/All/mysql56-client-5.6.51.pkg"
MYSQL_SERVER_URL="http://45.155.159.254/FreeBSD:12:amd64/quarterly/All/mysql56-server-5.6.51.pkg"
GCC9_URL="http://45.155.159.254/FreeBSD:12:amd64/quarterly/All/gcc9-9.4.0_1.pkg"

MYSQL_CLIENT_PKG="mysql56-client-5.6.51.pkg"
MYSQL_SERVER_PKG="mysql56-server-5.6.51.pkg"
GCC9_PKG="gcc9-9.4.0_1.pkg"

MYSQL_BIN="/usr/local/bin/mysql"
MYSQLADMIN_BIN="/usr/local/bin/mysqladmin"
MYSQL_INSTALL_DB="/usr/local/bin/mysql_install_db"

pause() {
    echo -n "Devam etmek icin ENTER tusuna bas..."
    read _
}

mysql_installed() {
    pkg info | grep -q '^mysql56-server-' && return 0
    return 1
}

gcc_installed() {
    pkg info | grep -q '^gcc9-' && return 0
    return 1
}

download_pkg() {
    URL="$1"
    OUT="$2"

    if [ -f "$OUT" ]; then
        ok "$OUT zaten mevcut."
        return 0
    fi

    info "$OUT indiriliyor..."
    fetch -o "$OUT" "$URL"
    if [ $? -ne 0 ]; then
        err "$OUT indirilemedi."
        return 1
    fi

    ok "$OUT indirildi."
    return 0
}

ensure_mycnf() {
    mkdir -p /usr/local/etc/mysql

    if [ ! -f /usr/local/etc/mysql/my.cnf ]; then
        info "my.cnf dosyasi olusturuluyor..."
        cat > /usr/local/etc/mysql/my.cnf <<EOF
[mysqld]
datadir=/var/db/mysql
socket=/tmp/mysql.sock

[client]
socket=/tmp/mysql.sock
EOF
        ok "my.cnf hazir."
    fi
}

init_mysql_datadir() {
    if [ -d /var/db/mysql/mysql ]; then
        ok "MySQL veri klasoru zaten hazir."
        return 0
    fi

    rm -rf /var/db/mysql
    mkdir -p /var/db/mysql
    chown -R mysql:mysql /var/db/mysql

    info "mysql_install_db calistiriliyor..."
    "$MYSQL_INSTALL_DB" --basedir=/usr/local --datadir=/var/db/mysql --user=mysql
    if [ $? -ne 0 ]; then
        err "mysql_install_db hatasi!"
        return 1
    fi

    ok "MySQL veri klasoru olusturuldu."
}

start_mysql_service() {
    info "MySQL servisi baslatiliyor..."
    service mysql-server start
    if [ $? -ne 0 ]; then
        err "MySQL servisi baslatilamadi!"
        return 1
    fi
    ok "MySQL servisi baslatildi."
}

set_mysql_root_auto123() {
    PASS="123"

    info "MySQL root sifresi 123 olarak ayarlaniyor..."

    if [ -x "$MYSQLADMIN_BIN" ]; then
        "$MYSQLADMIN_BIN" -u root password "$PASS" >/dev/null 2>&1
    fi

    if [ -x "$MYSQL_BIN" ]; then
"$MYSQL_BIN" -u root -p"$PASS" <<EOF
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '$PASS' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EOF
    fi

    ok "Root sifresi 123 olarak ayarlandi."
}

install_mysql() {
    if mysql_installed; then
        warn "MySQL zaten kurulu."
        return
    fi

    info "MySQL 5.6 kurulumu basliyor..."
    download_pkg "$MYSQL_CLIENT_URL" "$MYSQL_CLIENT_PKG" || return
    download_pkg "$MYSQL_SERVER_URL" "$MYSQL_SERVER_PKG" || return

    pkg install -y "./$MYSQL_CLIENT_PKG"
    pkg install -y "./$MYSQL_SERVER_PKG"

    grep -q 'mysql_enable="YES"' /etc/rc.conf || echo 'mysql_enable="YES"' >> /etc/rc.conf

    ensure_mycnf
    init_mysql_datadir || return
    start_mysql_service || return
    set_mysql_root_auto123
}

install_gcc_libraries() {
    LIBD="/usr/local/lib/gcc9"

    mkdir -p "$LIBD"

    info "GCC9 kutuphaneleri indiriliyor..."
    fetch -o "$LIBD/libstdc++.so.6" "https://razuning.com/yuklemeler/libstdc++.so.6"
    fetch -o "$LIBD/libgcc_s.so.1" "https://razuning.com/yuklemeler/libgcc_s.so.1"

    chmod 755 "$LIBD/libstdc++.so.6" "$LIBD/libgcc_s.so.1"

    ldconfig
    ok "GCC9 kutuphaneleri yuklendi."
}

install_gcc() {
    if gcc_installed; then
        warn "GCC9 zaten kurulu."
        return
    fi

    info "GCC9 kuruluyor..."
    download_pkg "$GCC9_URL" "$GCC9_PKG" || return
    pkg install -y "./$GCC9_PKG"
    install_gcc_libraries
}

remove_mysql() {
    warn "MySQL tamamen kaldirilacak."

    service mysql-server stop 2>/dev/null
    pkg delete -y mysql56-client mysql56-server >/dev/null 2>&1

    rm -rf /var/db/mysql
    rm -rf /usr/local/etc/mysql

    sed -i '' '/mysql_enable/d' /etc/rc.conf

    ok "MySQL tamamen kaldirildi."
}

install_compat_libs() {
    echo "1) 32 Bit uyumlu kutuphaneler"
    echo "2) 64 Bit uyumlu kutuphaneler"
    echo -n "Secim yap: "
    read arch

    pkg install -y gdb gcc gmake cmake openssl python subversion unzip devil unrar 7-zip

    if [ "$arch" = "1" ]; then
        pkg install -y compat4x-i386 compat5x-i386 compat6x-i386 compat7x-i386 compat8x-i386 compat9x-i386 compat10x-i386 compat11x-i386 compat12x-i386
        ok "32 Bit uyumlu kutuphaneler kuruldu."
    elif [ "$arch" = "2" ]; then
        pkg install -y compat4x-i386 compat5x-amd64 compat6x-amd64 compat7x-amd64 compat8x-amd64 compat9x-amd64 compat10x-amd64 compat11x-amd64 compat12x-amd64
        ok "64 Bit uyumlu kutuphaneler kuruldu."
    else
        err "Gecersiz secim."
    fi
}

copy_compat_libs() {
    info "Uyumlu lib dosyalari kopyalaniyor..."

    [ -f /usr/lib32/libssl.so.111 ] && cp /usr/lib32/libssl.so.111 /usr/lib32/libssl.so.11
    [ -f /usr/lib/libssl.so.111 ] && cp /usr/lib/libssl.so.111 /usr/lib/libssl.so.11
    [ -f /usr/lib32/libcrypto.so.111 ] && cp /usr/lib32/libcrypto.so.111 /usr/lib32/libcrypto.so.11

    ok "Uyumlu lib dosyalari hazirlandi."
}

set_turkey_time() {
    info "Turkiye saat dilimi ayarlaniyor..."

    cp /usr/share/zoneinfo/Europe/Istanbul /etc/localtime
    sed -i '' '/timezone=/d' /etc/rc.conf
    echo 'timezone="Europe/Istanbul"' >> /etc/rc.conf

    ntpdate -u pool.ntp.org 2>/dev/null || ntpd -q -g

    ok "Saat dilimi Istanbul olarak ayarlandi."
}

show_server_time() {
    info "Sunucu zamani:"
    date
}

donanim_bilgisi() {
    echo "Hostname: $(hostname)"
    echo "IP adresi: $(ifconfig | grep inet | awk 'NR==2{print $2}')"
    echo "FreeBSD surumu: $(freebsd-version)"
    echo "CPU: $(sysctl -n hw.model)"
    echo "Cekirdek sayisi: $(sysctl -n hw.ncpu)"
    echo "RAM (MB): $(expr $(sysctl -n hw.physmem) / 1024 / 1024)"
    echo "Disk durumu:"
    df -h /
    echo "Calisma suresi:"
    uptime
}

full_reset() {
    echo "============================================"
    echo "          TAM SISTEM SIFIRLAMA"
    echo "============================================"
    warn "Bu islem bu script ile yuklenen tum bilesenleri silecek."
    echo -n "Devam etmek istiyor musun? (y/n): "
    read r
    case "$r" in y|Y) ;; *) info "Islem iptal edildi."; return ;; esac

    info "MySQL kaldiriliyor..."
    service mysql-server stop 2>/dev/null
    pkg delete -y mysql56-client mysql56-server >/dev/null 2>&1
    rm -rf /var/db/mysql /usr/local/etc/mysql
    sed -i '' '/mysql_enable/d' /etc/rc.conf

    info "GCC9 kaldiriliyor..."
    pkg delete -y gcc9 >/dev/null 2>&1
    rm -rf /usr/local/lib/gcc9

    info "Uyumlu kutuphaneler kaldiriliyor..."
    pkg delete -y compat* >/dev/null 2>&1

    info "Temel paketler kaldiriliyor..."
    pkg delete -y gdb gcc gmake cmake openssl python subversion unzip devil unrar 7-zip >/dev/null 2>&1

    info "Saat dilimi ayarlari kaldiriliyor..."
    rm -f /etc/localtime
    sed -i '' '/timezone=/d' /etc/rc.conf

    ok "Tam sistem sifirlama tamamlandi."

    echo "--------------------------------------------"
    echo "Sistemin yeniden baslatilmasi tavsiye edilir."
    echo "--------------------------------------------"
    echo -n "Simdi yeniden baslatmak ister misin? (y/n): "
    read reboot_choice

    case "$reboot_choice" in
        y|Y) reboot ;;
        n|N) info "Yeniden baslatma iptal edildi." ;;
        *) info "Gecersiz secim, yeniden baslatilmadi." ;;
    esac
}

###############################################
#  HEPSINI YUKLE  REBOOT EKLENMIS FINAL HALI #
###############################################
hepsini_yukle() {
    info "Tum bilesenler yukleniyor..."

    install_mysql
    install_gcc
    install_compat_libs
    copy_compat_libs
    set_turkey_time

    ok "Tum bilesenler basariyla yuklendi."
    ok "MySQL root sifresi 123 olarak ayarlandi."

    echo "--------------------------------------------"
    echo "Kurulum tamamlandi. Sistem yeniden baslatilmasi tavsiye edilir."
    echo "--------------------------------------------"
    echo -n "Simdi yeniden baslatmak ister misin? (y/n): "
    read reboot_choice

    case "$reboot_choice" in
        y|Y) reboot ;;
        n|N) info "Yeniden baslatma iptal edildi." ;;
        *) info "Gecersiz secim, yeniden baslatilmadi." ;;
    esac
}

while true; do
    echo "============================================"
    echo "       FreeBSD Kurulum Scripti"
    echo "============================================"
    echo "1) MySQL 5.6 Kur"
    echo "2) MySQL Sil"
    echo "3) GCC9 Kur"
    echo "4) 32/64 Bit Uyumlu Lib Kur"
    echo "5) Turkiye Saatini Ayarla"
    echo "6) Sunucu Saatini Goster"
    echo "7) Donanim Bilgileri"
    echo "8) Hepsini Yukle (MySQL sifre: 123)"
    echo "9) Tam Sistem Sifirlama"
    echo "0) Cikis"
    echo "============================================"
    echo -n "Secim yap: "
    read sec

    case "$sec" in
        1) install_mysql; pause ;;
        2) remove_mysql; pause ;;
        3) install_gcc; pause ;;
        4) install_compat_libs; copy_compat_libs; pause ;;
        5) set_turkey_time; pause ;;
        6) show_server_time; pause ;;
        7) donanim_bilgisi; pause ;;
        8) hepsini_yukle; pause ;;
        9) full_reset; pause ;;
        0) exit 0 ;;
        *) err "Gecersiz secim."; pause ;;
    esac
done


Scriptin sağladıkları:


  • MySQL 5.6 otomatik kurulum
    • Veri klasörünün oluşturulması
    • Servisin başlatılması
    • Root şifresinin otomatik olarak "123" yapılması
    • Uzaktan bağlantı yetkilerinin verilmesi
    • libstdc++.so.6
    • libgcc_s.so.1
  • 32/64 bit uyumlu kütüphanelerin kurulumu
  • libssl ve libcrypto uyumluluk düzeltmeleri (111 → 11)
  • Türkiye saat dilimi ayarı ve NTP senkronizasyonu
  • Sunucu saatini ve donanım bilgisini görüntüleme
  • Hepsini yükle modu (tüm kurulumu tek seferde tamamlar)
  • Tam sistem sıfırlama seçeneği (scriptin kurduğu tüm paketleri kaldırır)

Script, Metin2 sunucusu kurarken ortaya çıkan MySQL, uyumsuz lib dosyaları, eksik paketler ve saat sorunları gibi sık karşılaşılan hataları tamamen ortadan kaldırmayı amaçlar. Kurulum sürecini hızlandırır, standart hale getirir ve tek komutla çalışan bir yapı sunar.
 
En son bir moderatör tarafından düzenlenmiş:
Bu script, FreeBSD üzerinde Metin2 sunucusu kurulumunu kolaylaştırmak ve gerekli tüm bileşenleri otomatik şekilde hazırlamak için geliştirilmiştir. FreeBSD’ye yeni başlayanlar veya hızlı bir kurulum isteyenler için pratik ve sorunsuz bir çözümdür.

Freebsd 13 ve sürümleri için uygundur.

26843 eklentisini görüntüle

İndirme linki ;


Scriptin sağladıkları:


  • MySQL 5.6 otomatik kurulum
    • Veri klasörünün oluşturulması
    • Servisin başlatılması
    • Root şifresinin otomatik olarak "123" yapılması
    • Uzaktan bağlantı yetkilerinin verilmesi
    • libstdc++.so.6
    • libgcc_s.so.1
  • 32/64 bit uyumlu kütüphanelerin kurulumu
  • libssl ve libcrypto uyumluluk düzeltmeleri (111 → 11)
  • Türkiye saat dilimi ayarı ve NTP senkronizasyonu
  • Sunucu saatini ve donanım bilgisini görüntüleme
  • Hepsini yükle modu (tüm kurulumu tek seferde tamamlar)
  • Tam sistem sıfırlama seçeneği (scriptin kurduğu tüm paketleri kaldırır)

Script, Metin2 sunucusu kurarken ortaya çıkan MySQL, uyumsuz lib dosyaları, eksik paketler ve saat sorunları gibi sık karşılaşılan hataları tamamen ortadan kaldırmayı amaçlar. Kurulum sürecini hızlandırır, standart hale getirir ve tek komutla çalışan bir yapı sunar.
hocam öncelikle elinize sağlık, ben freebsd13'e mysql 5.6 kurmakta zorlanıyordum ports klasöründen kurmayı falan denedim yapay zekayla onu da başaramadım eğer bunu indirsem kurabilir miyim?
 
Link kırılması ihtimaline karşılık shell script kodlarını konunuza ekledim. Paylaşım için teşekkür ederim
 
Foruma ve forum üyelerine yardımcı olacak şeylerin paylaşılması zaten çok güzel bir şey ek olarak bu tarz kolaylıklar çok daha hoş elinize sağlık <3 Paylaşım için teşekkür ederim
 
Link kırılması ihtimaline karşılık shell script kodlarını konunuza ekledim. Paylaşım için teşekkür ederim

Foruma ve forum üyelerine yardımcı olacak şeylerin paylaşılması zaten çok güzel bir şey ek olarak bu tarz kolaylıklar çok daha hoş elinize sağlık <3 Paylaşım için teşekkür ederim

Mesajlar için ben teşekkür ederim @Whistle shell script kodunu konuya eklediğiniz için teşekkürler adminim
 
hocam FreeBSD 13.0'a bunları kurduğumda

root@autovm:~ # service mysql-server start
Starting mysql.
root@autovm:~ # service mysql-server status
mysql is not running.
root@autovm:~ #

hatası alıyorum sorunu nasıl çözerim?
 
En son bir moderatör tarafından düzenlenmiş:
Geri
Üst