[OpenSUSE] MonoDevelop sees files that bash / file manager cannot
Linux - DesktopThis forum is for the discussion of all Linux Software used in a desktop context.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
[OpenSUSE] MonoDevelop sees files that bash / file manager cannot
Linux noob here, first time with OpenSUSE. I'm trying to set up a MonoDevelop project on my new OpenSUSE system, and to do that I need to add a reference to an external assembly (MonoGame) which I've already installed. Here's the problem:
The file explorer window in MonoDevelop sees a completely different filesystem tree than what I get while exploring in bash or in my file manager. I've attached a screenshot.
My MonoGame assembly is installed at /usr/lib/mono/xbuild/MonoGame/... and so on. MonoDevelop thinks that /usr/lib/mono does not exist (among many other paths, as exhibited by above screenshot).
Additionally, MonoDevelop can see and open a file called /app/manifest.json, even though bash clearly thinks the directory /app doesn't exist at all; but although MonoDevelop can view that file, I get an error when trying to save: "Access to the path '/app/.#manifest.json' is denied."
Why is MonoDevelop seeing a completely different filesystem than what i see in bash, or my file manager? Might it at all be related to using a BTRFS filesystem format? Should I direct this question to the folks at the OpenSUSE forum, or the MonoDevelop forum?
a leading slash: '/app...' means that the file would be located in the filesystem root '/', and not the current directory.
as a user, you work from that user's home, not from '/'. you don't have permission to add files to '/', and nor should you.
try 'echo stuff > app' instead of 'echo stuff > /app'.
I understand what you said, but that's not the problem. In the screenshot I attached in the original post, you can see the dialog window in MonoDevelop opened to "File System" (which I navigated to upwards through /home/myuser, so I believe I'm right to say this is the root directory - "/").
In the terminal window next to the dialog, I listed the contents of the root directory "/", and they are a bit different; for example, "ls" shows /boot and not /app (no idea what /app is or what might have made it), and MonoDevelop shows /app and not /boot. There are other "ghost" directories - the reason this is such a problem is because I need to access a file within /usr/lib/mono, but MonoDevelop cannot find that directory.
It may also be noteworthy that the "Date Modified" timestamps do not always match between the two windows' output. MonoDevelop shows Date Modifed on /var as 15:14 but ls shows 12:33.
Additionally, I tried a few more things:
I just created a new directory at root called /test, and sure enough, MonoDevelop didn't pick up on it.
I created a directory /home/test, and MonoDevelop did not see it.
I created a new directory at my home directory called /home/myuser/test and MonoDevelop saw it.
I then created a symlink to /usr/lib/mono, which MonoDevelop cannot see, and put it in my home directory as /home/myuser/monotest. MonoDevelop did not see it.
It seems that /home/myuser is the only directory in which MonoDevelop can see the "correct filesystem." This is quite baffling. Remember MonoDevelop was able to read (but not write to) /app/manifest.json, which doesn't exist according to "ls" or my file manager.
I know nothing about monodevelop but is it possible it keeps an internal database of files and data and this is what it is showing you, not the actual file system?
METROIDHunter_, please take a deep breath, stop posting here, and get familiar with your new operating system.
MonoDevelop is one Software; but you need to understand your Operating System, esp. the filesystem and the shell, first.
Don't worry if you don't understand half the terms i used now, just do a quick search on "how to learn linux" or "linux command line tutorial" or some such and, i'll say it again, slow down and take it step by step.
Maybe forget about that mono app for now.
Really? I expected something more helpful than a belittling remark and a dismissive reply that I should "get familiar with my new OS". I've been using Linux as a primary OS for 8 months.
I'm replying to say I did find the cause of the problem, and to write my solution for future reference.
I installed MonoDevelop on OpenSUSE with flatpak, and I have since learned that the flatpak version of MonoDevelop runs in a sandbox. To boil it down to simple terms, the directories MonoDevelop was seeing were virtual directories, part of its "sandbox" - and the Assembly I wanted to load was part of my real filesystem, NOT the sandbox. I learned I'm not the only one who was irritated by this.
On OpenSUSE, the only other option for MonoDevelop was to build it from source; so I went and built MonoDevelop 7.8.1 from source and lo and behold, it works! I can see my real filesystem now.
^ sorry you should feel that way; it's not always easy to gauge where a person stands in their understanding of linux, and many make the mistake of jumping in at the deep end and then post a succession of "flailing" help threads.
I also don't do well with screenshots, i prefer copy-pasted plain text.
anyhow, glad you solved it! that's the most important thing: don't stop searching for explanations/solutions.
Quote:
Originally Posted by METROIDHunter_
I installed MonoDevelop on OpenSUSE with flatpak, and I have since learned that the flatpak version of MonoDevelop runs in a sandbox. To boil it down to simple terms, the directories MonoDevelop was seeing were virtual directories, part of its "sandbox" - and the Assembly I wanted to load was part of my real filesystem, NOT the sandbox. I learned I'm not the only one who was irritated by this.
just another reason why distros should not use snaps/flatpaks/etc. by default, or without telling their users about it when they install them.
yes, flatpak is a container system.
yes, there will always be fundamental differences between a containerised install and a regular install.
The former should only be used when you are 100% sure that that is exactly what you want/need.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.