__INSTALL_DIR__ error

What type of hardware are you using: Virtual machine
What YunoHost version are you running: 11.12.3

Describe your issue

The root cause of this error is a mismatch due to the server’s language settings and character encoding. When using Turkish locale settings, certain characters are processed differently, which causes variables in scripts to be misinterpreted and leads to errors during installation.

Explanation of the Error:
On Unix-based systems like Linux, the server’s language settings (locale) affect how certain characters are interpreted in command-line scripts. In Turkish locale, the lowercase “i” character can be misinterpreted as the dotless “ı” character. This can result in variables and placeholders being renamed unexpectedly or read incorrectly.

For example:

Expected variable: $install_dir
Read in Turkish locale: $ınstall_dır
In this case, even placeholders like INSTALL_DIR, written in uppercase, may be misinterpreted when converted to lowercase, causing “i” to turn into “ı” unexpectedly, leading to errors. However, in the English locale, there is no “ı” character, so this issue does not arise.

Solution:
To fix the issue, set the server’s language settings to English. In the English locale, the “i” character remains as “i,” so there is no conflict. As a result, variables and placeholders like $install_dir or INSTALL_DIR are interpreted correctly, and the error is avoided.

To set the language to English, use the following commands:

sudo update-locale LANG=en_US.UTF-8
Then, restart the server:

sudo reboot
After rebooting, the server will be in English locale, and the variables in the script will be read correctly, so the error will no longer occur.

Summary:
In the Turkish character set, “i” may be misinterpreted as “ı” (dotless i). In English locale, this character mismatch does not happen, so placeholders like INSTALL_DIR and variables like $install_dir are processed correctly. This is why switching to the English locale resolves the issue.


Bu hatanın temel sebebi, sunucu dili ve karakter setinden kaynaklanan bir uyumsuzluktur. Türkçe dil ayarlarında kullanılan karakterler nedeniyle, betikteki $install_dir değişkeni yanlış bir şekilde yorumlanmakta ve bu da kurulum sırasında hataya yol açmaktadır.

Hatanın Sebebi:
Linux gibi Unix tabanlı sistemlerde, sunucu dil ayarları (locale), komut satırında veya betiklerde kullanılan bazı karakterlerin nasıl işlendiğini etkileyebilir. Türkçe dil ayarında “i” harfi noktasız bir şekilde “ı” karakteri olarak yorumlanabilir. Bu durumda, betikteki değişkenler ve yer tutucular beklenmedik bir şekilde yeniden adlandırılır veya yanlış okunur.

Örneğin:

Beklenen değişken: $install_dir
Türkçe locale’de okunan: $ınstall_dır
Bu durumda, betikte INSTALL_DIR gibi büyük harflerle yazılan bir yer tutucu bile yanlış okunarak küçük harfe dönüştüğünde “ı” harfi ile yanlış yorumlanmakta ve bu da hataya yol açmaktadır. Ancak, İngilizce dil ayarlarında “ı” harfi bulunmadığı için bu sorun ortaya çıkmamaktadır.

Çözüm:
Sorunun çözümü için sunucu dil ayarlarının İngilizce yapılması gerekmektedir. İngilizce dil ayarında “i” harfi yalnızca “i” olarak yorumlanır ve herhangi bir uyumsuzluk oluşmaz. Bu yüzden $install_dir veya INSTALL_DIR gibi değişkenler ve yer tutucular doğru bir şekilde okunur ve hata alınmaz.

Dil ayarını İngilizce yapmak için aşağıdaki komutları kullanabilirsiniz:

sudo update-locale LANG=en_US.UTF-8
Daha sonra sunucuyu yeniden başlatın:

sudo reboot
Sunucu yeniden başladığında dil ayarı İngilizce olacak ve betikteki değişkenler doğru yorumlanacağı için hata ortadan kalkacaktır.

Özet:
Türkçe karakter setinde “i” harfi, “ı” (noktasız i) şeklinde yanlış yorumlanabiliyor. İngilizce dil ayarında bu karakter uyumsuzluğu olmadığı için INSTALL_DIR gibi yer tutucuların ve $install_dir gibi değişkenlerin doğru bir şekilde işlenmesi sağlanıyor. Bu yüzden, İngilizce dil ayarı sorunu çözüyor.

Share relevant logs or error messages

ınstall_dır wasn’t initialized when trying to replace INSTALL_DIR in /etc/php/8.3/fpm/pool.d/nextcloud.conf

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.