gnunet-publish: command not found

Have You tried accessing the binary with the full path?

Maybe Your $PATH variable doesn't contain the default paths? echo $PATH should give something like:

[root@server ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

If it's empty, You may set the PATH variable with this command

export PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"

On Debian possible default full paths are:

/usr/bin/gnunet-publish - from package: gnunet

You may install the required package with command apt-get install {package}
Error in other languages:
gnunet-publish: bevel nie gevind nie
gnunet-publish: comandă negăsită
gnunet-publish: comando não encontrado
gnunet-publish: commande introuvable
gnunet-publish: command not found
gnunet-publish: käsku ei ole
gnunet-publish: không tìm thấy lệnh
gnunet-publish: komanda nerasta
gnunet-publish: Kommando nicht gefunden.
gnunet-publish: kommandot finns inte
gnunet-publish: komut yok
gnunet-publish: nie znaleziono polecenia
gnunet-publish: níor aimsíodh an t-ordú
gnunet-publish: no se encontró la orden
gnunet-publish: no s'ha trobat l'ordre
gnunet-publish: opdracht niet gevonden
gnunet-publish: parancs nem található
gnunet-publish: perintah tidak ditemukan
gnunet-publish: príkaz nenájdený
gnunet-publish: příkaz nenalezen
gnunet-publish: команда не найдена
gnunet-publish: командата не е открита
gnunet-publish: 命令找不到
gnunet-publish: コマンドが見つかりません