WelcomeWelcome | FAQFAQ | DownloadsDownloads | WikiWiki

Author Topic: appbrowser not installing deps for packages -that are already- locally installed  (Read 5748 times)

Offline tobiaus

  • Suspended
  • Hero Member
  • *****
  • Posts: 599
edit: only modifed the title... granted i tried an older version of tc (i don't think this is something that's changed) but i just tried installing leafpad by downloading the .tce from ibiblio using wget (which i knew wouldn't install the deps) and then tried to install leafpad from the appbrowser.

appbrowser knows that leafpad.tce has been installed, but it assumes the deps are also installed, so it won't download and install them. the only way to install leafpad now is to delete it, or (if using cloud) reboot, or install the deps manually (which is fine for me, but for someone that thinks it's buggy and is having trouble, not the best option.) it shouldn't usually be an issue, but on occasion it could be great if instead of checking to see if one dep was installed, it downloaded just the .dep file and checked if each was installed.
« Last Edit: April 09, 2009, 09:44:05 AM by tobiaus »

Offline mikshaw

  • Sr. Member
  • ****
  • Posts: 368
Re: appbrowser not installing deps for packages locally installed
« Reply #1 on: April 09, 2009, 09:15:34 AM »
Quote
it assumes the deps are also installed
Technically speaking, it doesn't assume anything. In a local environment it simply installs the package you chose to install.  I'm not sure if it has changed, but if it has you would need to have downloaded the *.dep file for the package and all files listed in the *.dep file in order for it to install the dependencies from a local directory.  It's much easier to use the appbrowser online initially, which will automatically handle dependencies.  In any case, I'm sure there will continue to be improvements in the future.

Quote
the only way to install leafpad now is to delete it, or (if using cloud) reboot
I'm not sure why you feel this is needed.  You should be able to install the dependencies even after the non-functional application is installed.  If needed you can get the dep file in the same place that you got leafpad. It will be named the same as the leafpad file, with ".dep" at the end.  Currently I think it's not visible in a web browser or the appbrowser, so you will need to type.   In a web browser you can copy the link to leafpad, paste in the address bar, then add ".dep" to the end of the address.  As I said, I'm pretty sure this will be a temporary annoyance.  Tiny Core is still very young.

EDIT: I didn't notice who the poster was until after I replied.  Forgive me for the patronizing tone...I typically reserve that for teaching noobs =o)
« Last Edit: April 09, 2009, 09:19:00 AM by mikshaw »

Offline tobiaus

  • Suspended
  • Hero Member
  • *****
  • Posts: 599
Re: appbrowser not installing deps for packages locally installed
« Reply #2 on: April 09, 2009, 09:41:12 AM »
nevermind the tone, let's make sure my post was clear because i'm not saying that there's anything wrong with the "install local" button. this is about "install selected."

as a hypothetical noob, i want to install mtpaint, so i download http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/tce/mtpaint-3.21.tce because someone has linked me to it, or i found it in "downloads" from the main page and i've never used appbrowser.

then i install it (using appbrowser, file > install local.) i think mtpaint doesn't work because i know nothing about deps or .dep files. (the next version of appbrowser is going to improve that.)

now if i'm using ppr/tce, i can delete mtpaint and reboot. if i'm using cloud, rebooting is not as great an option. if i'm using tcz, i can unmount and delete the tcz, but cloud is the easiest mode for hypothetical noobs. perhaps i should use tce-uninstall but it also has deps! and then who wants to recommend tce-uninstall to a new user? (unless they ask.)

the problem is that i've installed mtpaint improperly without deps and i'm (hypothetically) having trouble manually installing the deps one at a time. perhaps there are many and i don't know which isn't installed, but i'm asking tobiaus (hypothetically) how to make mtpaint work, and he's telling me "open appbrowser, connect to tce, select mtpaint-3.21.tce and "install selected." only his advice will not work you see... appbrowser "install selected" will only check if mtpaint is installed- and never install the deps automatically- rendering the simplest answer to "how to make mtpaint work?" useless.

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
The title of this post is very misleading, because, in fact, locally stored extension that are complete do indeed load dependencies.

You are over looking the statement on the web page that clearly states:

To load interactively with automatic dependency resolution use the TCE Applicaton Browser.

The web browser download 'save as' is not recommended, neither is a manual wget.
If there is any complaint, it would be to add more colums to web page. or perhaps not allow such piecemeal downloads. As even adding more columns to the web page still means much manual effort including manual checking of the md5 checksum.

The appbrowser not only does the dependencies but also the checking of the extension's md5sum.

I can make the webpage warning statement use a bigger font, perhaps red, perhaps flashing, or perhaps, disable the download links altogether.

But the fact remains, if an extension is complete and stored locally, locally installed extensions using appbrowser, do load the extensions' dependencies.
10+ Years Contributing to Linux Open Source Projects.

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
Some extensions do not need a .dep and therefore would not have one. So the appbrowser reporting that the selected extension is loaded is proper based on the available files.  It would not be "load local", if everytime, the appbrowser had to access the web to check to see if you had manually missed some required part of the download because you had decided to do parts manually.

It is like complaining that the extension does not run properly because you failed to download the .md5.txt and check it and the extension is in fact corrupt.  Yet, you are not mentioning that.

Use the appbrowser and it will work.
10+ Years Contributing to Linux Open Source Projects.

Offline tobiaus

  • Suspended
  • Hero Member
  • *****
  • Posts: 599
i know that not every tce has a dep... actually this problem would never occur for tce's that do not have a dep.

let me argue this is a small problem, although i think it's an easy thing to fix. but first let's clarify what the issue actually is, because i think i'm being misunderstood.

i could try to explain why i choose to list this a bug, that's not important now, but if i had only put it under "tcb talk" i might not have been misunderstood. i wasn't trying to mislead though, i was hoping i'd be understood the first attempt i made to explain.

in the interest of clarity, here are two scenarios. mine (labeled: "me") is typical of many new users, also. for users that have trouble with the instructions (bolding it further will help more if the reader's english is good...) the other scenario may prove relevant:


 

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
A mountain out of a mole hill. If you started manually then finish the job manually.
Don't mix use of tools and expect full automation.

If this is a mountain, then the webpage needs to be removed.
10+ Years Contributing to Linux Open Source Projects.

Offline tobiaus

  • Suspended
  • Hero Member
  • *****
  • Posts: 599
the problem with the alternative scenario is it feeds itself. someone who has trouble understanding the instructions (because english is a second language) will eventually figure out how to install the deps, but is likely to now think that installing apps in tc is very complicated (we know it isn't. he just made it so.)

i already agreed it is a mole-hill, i'm not trying to make a mountain out of it. rather i'm suggesting that instead of letting people make mountains of it in the future, it should be very easy to remove the mole ahead of time. an ounce of slightly tweaked design is worth a pound of explanations.

the solution i have in mind (and if it's not worth it, please don't use it) is... take leafpad for example. here is appbrowser's logic (forgive me if i'm wrong, you wrote it but i'm guessing how it thinks from using it)

reality: just leafpad.tce is installed, even though it needs:
expat2.tcel
glib2.tcel
graphics-libs-1.tcel
libxml2.tcel
fontconfig.tcel
ttf-bitstream-vera.tce
gtk2.tcel
atk.tcel
cairo.tcel
pango.tcel
pixman.tcel

1. i tell appbrowser to "install selected" leafpad.tce 
2. it checks only that item if it's installed
3. if it's not installed, it installs everything.

the solution: (the improvement on the original design)

1. i tell appbrowser to "install selected" leafpad.tce
2. it checks each item on the .dep list (which i think tc keeps now anyway?)
3. for each file listed in the dep, it installs them if they're not installed.

if implementing this is a terrible idea for some reason (very noticeable realtime ineffeciency) then i understand why no one changes it. if it was really difficult to do or hurt the simplicity of tc, i'd understand.

i think it's just a question of checking a few installed tce's instead of one. i don't want it to change the way tce's are loaded on boot- just when they're being downloaded from the net, via appbrowser.

then when someone thinks (incorrectly) he's installed every dep, he can make certain by using appbrowser. i think it could save a whole mountain of little molehills in the long run.

but if it's really not worth it, forget i said it, i won't mention it again i promise.

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
The problem with your improvement is that it is specific to your example.

As I previously mentioned, and you acknowledged, not all extensions have a dep, so how would appbrowser check each file in a non-existent dep unless it tried to connect to a remote repository to verify such existence? That would mean TC is un-useable when not connected to the net whilst trying to load local an extension that needs no dependencies.

What you are suggesting is to be able to start a process manually and expect appbrower to finish the job by CONNECTing to the net, i.e., not LOCAL, to do a verify and finish the downlaod/installation. The INSTALL LOCAL does not ever expect to CONNECT, i.e., the verbiage LOAL LOCAL versus CONNECT. Besides, by way of a manual process, means the extension could be stored at any location in the filesystem, which may not be recognized by the system upon reboot, i.e., a properly specified tce directory. And that compounds the issue.

It is not the intended use of appbrowser. The modes of appbrower is to stay local and load locally from a proper PPR or optional directory in the PPR or connect and download into a PPR or PPI as evidenced by the two menu options.

Either the webpage needs much more instructions on how to manually download all the pieces into a properly recognized "tce" directory or the download link needs to be removed.

Seeing as there is much work to manually download many pieces together with an understanding of where such extensions and related files need to be placed,  I think the best solution is to remove the readily able download link, rather than to propagate the unintended use of appbrowser and all that would imply.
10+ Years Contributing to Linux Open Source Projects.

Offline tobiaus

  • Suspended
  • Hero Member
  • *****
  • Posts: 599
As I previously mentioned, and you acknowledged, not all extensions have a dep, so how would appbrowser check each file in a non-existent dep unless it tried to connect to a remote repository to verify such existence?

good point. i suppose you could switch from the if-no-dep-then-no-dep-file model to if-no-dep-then-zero-line-dep-file. if you think that's overkill, it may be.

Quote
That would mean TC is un-useable when not connected to the net whilst trying to load local an extension that needs no dependencies.

unless the "dep file" for a tce with no deps existed anyway.

Quote
What you are suggesting is to be able to start a process manually and expect appbrower to finish the job by CONNECTing to the net,

yes. the idea is that i started out not knowing what i was doing, then i learned that i should use appbrowser. only appbrowser is telling me the app is installed, but it isn't installed the way that appbrowser would install it for me if i hadn't improperly installed it the first time.

Quote
The INSTALL LOCAL does not ever expect to CONNECT, i.e., the verbiage LOAL LOCAL versus CONNECT.

i'm aware of the verbiage and i'm not suggesting anything that would contradict it. the only thing i would change is the behavior of INSTALL SELECTED, which relates exclusively to CONNECT. this implies internet access. load local would not be affected in any way by any of my suggestions.

the only change would be that INSTALL SELECTED (which always uses a net connection) would install all deps even if you "accidentally" installed some of them already.

Quote
by way of a manual process, means the extension could be stored at any location in the filesystem, which may not be recognized by the system upon reboot, i.e., a properly specified tce directory. And that compounds the issue.

this may be due to an misunderstanding not of how to use appbrowser, but how tce-fetch works based on guessing, so bear with me. as far as i know, my suggestion would not affect tce-load (thus it would not affect boottime loading) but only tce-fetch, right?

on boot, tc never tries to fetch packages. i wouldn't change that!

Quote
It is not the intended use of appbrowser.

well, i'm not saying that people *should* mix and match local and connect installs, only that if you botch a local install due to inexperience, appbrowser could (i only assume easily) clean up and download all the unloaded deps for a package.

Quote
Either the webpage needs much more instructions

i don't think that will help, it's about as clear as it can be and there will be people that misunderstand (or never read them, in which event it really doesn't matter how clear they are)

Quote
or the download link needs to be removed.

i hope it doesn't come to that, it's very convenient, i use it all the time to look up dep files. besides it also leads to the current and archive releases.

if you wanted to remove it, don't, remove the links to the tce and tcz folders in the "fancy" html of the downloads page at ibiblio, then for people to access the tce and tcz folders they will have to append the url with "tce" or "tcz." but i hope it doesn't come to that.

Quote
I think the best solution is to remove the readily able download link, rather than to propagate the unintended use of appbrowser and all that would imply.

depending on how complicated my "improvement" is, you may be right. the premise of my solution is that it would be trivial (in theory!) to modify appbrowser accordingly. if it's ultimately (in practice) not trivial, then i don't stand by my suggestion. if it ever became trivial, i would still be interested.

the intention behind the entire thing was actually to make "connect > install selected" a little more true to its label, (not less,) even in a situation where someone has tried to install manually and not managed it... ultimately so if someone's having trouble, it's much easier (for us) to help them. if this won't make it easier (for us) to help, then it's really not worth it.

Offline mikshaw

  • Sr. Member
  • ****
  • Posts: 368
I think I'm following the logic of what tobiaus is saying, and it does make sense to me.  A new user with no knowledge of what a dependency is may choose to open the appbrowser assuming that it will solve the problem (and assuming that the old file will be fixed/overwritten automatically).  If the appbrowser then says the application is installed, that user may very well assume that there's nothing to do but start over, and only then decide to delete the file (which would fail if it's mounted).

An addition that checks for a complete install rather than just the main app would be helpful in that situation, even if all it did was check the dep file and tell you what's missing.
This might be a non-issue, though, if/when it gets to the point where deps are listed in the appbrowser.

Offline roberts

  • Administrator
  • Hero Member
  • *****
  • Posts: 7361
  • Founder Emeritus
The deps as well as list are displayed in appsbrowser in version 1.3rc3

I have updated the downloads portion of the website with a link to a simple howto

http://distro.ibiblio.org/pub/linux/distributions/tinycorelinux/download_howto.html

Mama always said, "Easier to prevent a mess than to try to cleanup one".
10+ Years Contributing to Linux Open Source Projects.