Unfortunately, transferring audio files to an iPhone isn't an easy process and requires jumping through a few hoops. I'm going to assume that the audio you currently have is stored on your PC as an MP3, as this is the de-facto standard for audio, though the steps should be similar for other audio formats like FLAC.
The first step is to take your media file and convert is to the AAC format; this can be done with FFmpeg, which you should be able to install from your package repository, though there are also GUI tools available if you're unfamiliar with the command-line. Once this is done, the conversion can be performed by:
ffmpeg -i [file-to-convert].mp3 ringtone.aac
This will spew out some text about the file, but afterwards, you will be left with a converted audio file. However, before it can be put on your phone, you need to rename the file so that its extension is .m4r
and shorten it to under 40 seconds, otherwise iTunes will not recognise it as a ringtone.
Transferring the ringtone to your phone is the more difficult part - iTunes is not officially supported on Linux and doesn't appear to work too well with Wine (though there's no harm in trying this out). Therefore, instead you may have to get access to iTunes through:
- An old laptop or Apple desktop you might be able to run iTunes on
- Access to Apple or Windows devices at your local library
- A friend or colleague who would be willing to yet you borrow their device for half an hour
- An old copy of Windows you could load up in a virtual machine
Once you do have iTunes up and running, you should be able to connect your iPhone to that device and simply drag and drop the ringtone.m4r
file you created earlier onto the Tones tab under your phone on iTunes. After the file transfers, it should appear in the list of ringtones on your phone.