ffmpeg was not found on your system in Azure service fabric application - asp.net-core

I have a stateless service fabric application, which uses ffmpeg.exe to convert video files. ffmpeg.exe is added to the project and it's properties set to Content & Copy always. When I install the app on Azure VM (Service Fabric 5 node cluster), it has been deployed to D:\SvcFab\_App\Sample_App1\Sample.Code.1.0.0. (D drive is temp storage on Azure VM). When ever I try to convert a video file, I am getting ffmpeg.exe was not found on your system exception. I am able to convert files in development environment and on on-prem server without any exception.
I tried to access ffmpeg.exe using Path.Combine(Directory.GetCurrentDirectory(), “ffmpeg.exe”) and Path.Combine(FabricRuntime.GetActivationContext().GetCodePackageObject(“Code”).Path, “ffmpeg.exe”)

ffmpeg won't work unless you have it preinstalled on the vm you are using.
Once installed it will work without even needing to place the ffmpeg.exe with the source code.
If you are using a Linux VM then installation can be done using package manager.
Here I have yum as a package manager.
yum install ffmpeg
if you are using a windows VM then you have to first upload the entire folder which you have downloaded from the ffmpeg website and then you have to set the address of the bin folder to the path environment variable.
This can be achieved in command line using the following command
$Env:PATH += ";<Path to you bin folder>"

Related

Access WSL2 java vm through IDEA

I have setup GraalVM by downloading it through oracle page and extracting the tar file in drive E:/ ("E:\Programs\Java\graalvm-ee-java17-22.0.0.2\bin").
Then I log into WSL2 (ubuntu) bash and setup the environment variables in bashrc.
now I can execute the VM through command line...
However my IDEA Community could not load this JVM into my project. When I try to manually add JDK, it would not allow to open mnt folder and specify the path.
I can't expand the e directory. How can I overcome this issue and allow IDEA to recognize the WSL instance JDK?
It's a Windows limitation, if you open \\wsl$\Ubuntu-20.04\mnt in File Explorer, you will not be able to browse the drives. I'd recommend you install JDK in another browsable place under WSL.

Pip , npm on offline servers

If you are developing Python web services for local network (servers is totally offline from the web) and the only way to add files to the server is through Flash drivers so using pip for Python packages or npm for node packages is such a headache and gets in a lot of dependencies issues and build issues .. so what is the proper way of dealing with such environment so development and deployment would be easier?
there are 2 approaches which you can take:
download all your dependencies locally and ship them to the remote server. this includes all the pip and npm packages. pay attention to the python\nodejs\operating system versions and architecture.
use docker to create an image, which packs everything. then ship the image to the remote server and finally spin-up a container based on that image.
You can use Pypicache to run your own pip servers and let it to cache your dependencies wherever you have an internet connection (where you are developing the application).
Then you can copy the whole pypicache folder on your flash drive and run the server wherever you want and use the cached packages inside it. the good point is in some environments that you can get a network connection for a limited time, having a pypicache is useful because it can download whatever all of the dependencies that your python applications need, and each instance would download and install the dependencies from the offline pip server by providing a simple switch in the command line. Here is an example:
pip install -i http://localhost:8080/simple somepackage
More Information - pypicache

Accessing files without installing Dropbox from Linux OS installed parellelly in Windows7

I have installed Dropbox in Windows 7. Also, installed Ubuntu Linux 14.04 in parallel. Through online login to Dropbox account allows access to files in Dropbox. However, to work with the files in Dropbox I have to install Dropbox in Linux also. This require additional space in the same PC. So, is it possible to access and work with files in Dropbox#Windows7 without installing Dropbox in Ubuntu (which is installed in the same PC parelelly)?.
You can access windows disks in linux, you just need to map it correctly. Then you can do whatever you want with files. But dropbox magic will not work until you load windows again.
Only when you bootup from windows again, since it is dropbox app that does syncing. What you may do is to deploy dropbox on both windows and linux, but point them to the same data folder. Still there could be some problems with text files, as windows and linux are not treating line endings the same way. So if a file was synchronized in windows, it will have windows endings, and vice-versa.
Maybe you could configure a remote filesystem on a USB-Stick so both your systems can access on it and you have a directory where dropbox stores the files.
Look here: https://www.dropboxforum.com/t5/Dropbox/Idea-Portable-Dropbox-folder-on-flash-drive/idi-p/122804

How to connect JProfiler to Virgo Server running in remote linux machine

Please help me how to connect JProfiler from windows machine to remote Virgo Jetty Server which is running in linux server.
Below are the steps I am following
From Choose Integration Wizard selecting Eclipse Virgo(Next)
Then I am selecting option of on remote computer with Linux platform(Next)
Then I am selecting JVM vendor Version etc (Next)
selecting option Wait or a connection from JProfiler GUI(Next)
Providing remote hostname:port(Next)
I was stuck at specifying remote installation directory
Here we didnt install JProfiler in our linux remote environment but we have server running there.I have seen option like If JProfiler is not installed,you can create archive and that contains profiling agent and extractit in above directory.Asking folder where to create Archive.
Can you please help what exactly this means what I need to do to create archive .Only thing I have done is installed JProfiler evaluation version in local machine and profiling local server.
Please help and let me know any additional information is required..Thanks in Advance..
If you select the option to create an archive in the integration wizard, JProfiler will create a .tar.gz file that contains the libraries for the profiling agent. You transfer that archive to the Linux server and extract it somewhere, e.g. to /home/myname/jprofiler by calling
mkdir /home/myname/jprofiler
cd /home/myname/jprofiler
tar xzvf /path/to/jprofiler_agent_linux-x64.tar.gz
In the integration wizard, specify /home/myname/jprofiler as the remote installation directory.

Creating a Mono binary install package for CentOS 5.2

I'm new to Linux but have to port a asp.net app to Linux platform. (CentOS 5.2)
I downloaded the mono source files and manually build them on my dev box, because there's no aviable Binary package for CentOS 5.2 (almost the same as RedHat), the app works well on the dev box.
The next step is to setup the production server, which has minimal libraries installed.
My question is... how to make the Mono binary files into a install package so I don't need to download and build them in the production server.
(My dev box is the same configuration as the production one)
I have tried to copy all mono related files into the server, but with no luck... May I missed some files or some settings...
You can still get binary RPMS here
EDIT:
Recently, Mono announced support for RHEL/CentOS. You can get packages from them here.