- AdminCP
- #1
- Kayıtlı
- 1 Yıl 10 Ay 6 Gün
- Katılım
- 22 Ara 2024
- Konular
- 80
- Mesajlar
- 400
- Tepkime puanı
- 102
- Online süresi
- 3d 10h 12m
- Puan
- 53
- Konum
- Türkiye
- Web sitesi
- metin2games.com.tr
Konu Hakkında Bilgilendirme
FreeBSD işletim sistemi üzerinde Metin2 private server kurarken karşılaşılan eksik paketler, MySQL 5.6 uyumsuzlukları, GCC9 sürümleri ve libcrypto / libstdc++ hataları yöneticilerin en çok vakit kaybettiği konuların başında gelir.Bu tam otomatik FreeBSD Metin2 kurulum scripti; özellikle FreeBSD 13 ve üzeri sürümlerde sıfırdan sunucu kuranlar veya bu tip lib/veritabanı hatalarıyla boğuşmak istemeyenler için pratik, hızlı ve hatasız bir altyapı sunar.
Scriptin Sunduğu Başlıca Özellikler
- Otomatik MySQL 5.6 Kurulumu: Veri klasörünü (/var/db/mysql) otomatik oluşturur, servisi aktif eder, root şifresini 123 olarak tanımlar ve uzaktan bağlantı (%) yetkilerini otomatik ayarlar.
- Gelişmiş Kütüphane (Lib) Düzeltmeleri: libstdc++.so.6 ve libgcc_s.so.1 eksikliklerini giderir; oyun dosyalarının aradığı libssl / libcrypto sürüm uyumsuzluklarını (111 -> 11) otomatik olarak çözer.
- 32-Bit / 64-Bit Uyum Desteği: Eski tip game ve db dosyaları için gerekli olan 32-bit compat kütüphanelerini tek tuşla sisteme entegre eder.
- Zaman & NTP Senkronizasyonu: Türkiye saat dilimini (Europe/Istanbul) otomatik olarak ayarlar.
- Tek Tuşla Hepsini Yükle Modu: Altyapıyı baştan sona eksiksiz kurar.
- Tam Sistem Sıfırlama (Full Reset): Scriptin kurduğu tüm paketleri ve verileri temizleyerek tertemiz bir başlangıç yapmanızı sağlar.
Kurulum ve Kullanım Talimatları
Sunucunuza SSH üzerinden root olarak bağlandıktan sonra scripti indirebilir ve çalıştırabilirsiniz:Bash
# Script dosyasını oluşturun veya indirin
nano kurulum.sh
# (Aşağıdaki kod bloğunu yapıştırıp kaydedin)
# Çalıştırma izni verin
chmod +x kurulum.sh
# Başlatın
./kurulum.sh
Tam Otomatik Kurulum Scripti Kodları
Not: Kod bloğunu doğrudan kopyalayarak sunucunuza .sh dosyası olarak kaydedebilirsiniz.
Kod:
Bash
#!/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() {
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
doneNot: Kurulum sonrasında karşılaştığınız herhangi bir hata veya sorun olursa konu altında belirterek destek isteyebilirsiniz. İyi çalışmalar dilerim!

