Still not installing

Asked by Fernando

metview does not work at Ubuntu by years.
what changes are the errors
a tipical new Ubuntu 22.04.1 installation as

sudo apt update && sudo apt -y upgrade
sudo apt -y install build-essential dh-exec
sudo apt -y install x11-apps qt6-base-dev
sudo apt -y install metview

$ metview
 creating Metview user directories in /home/fernando/metview...
 UNABLE TO CREATE USER DIRECTORY: /usr/share/metview/share/app-defaults/UserDir
metview: EXIT on ERROR (line 1), exit status 1, starting 'cleanup'
/usr/bin/metview: line 154: 5: Bad file descriptor

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu metview Edit question
Assignee:
No assignee Edit question
Solved by:
Fernando
Solved:
Last query:
Last reply:
Revision history for this message
Manfred Hampl (m-hampl) said (last edit ):
#1

What is the problem with metview? Installing it or running it?
The question title says "installing", but the question information does not show an error when installing, but one when running the progrem.

Does the directory /usr/share/metview/app-defaults/UserDir/ exist?
It should have been created when you install the package metview-data.

I suggest that you try reinstalling the package metview-data (sudo apt install --reinstall metview-data).
Does that command work without error? Does the UserDir directory exist after that command?

(Remark: Why do you manually install build-essential, dh-exec, x11-apps and qt6-base-dev? They should not be necessary for metview, or - if one of them is needed - the package management system will install it automatically.)

Revision history for this message
Fernando (fometeo) said :
#2

The problem, all these years, is it install, but never ever work. I wonder what is missing to me. Surely someone must have it install and work within Ubuntu, now 22.04.1

So, if something install but does not work, you tell me the problem class here.

Ah, first, thank you for your time answering, I was not expecting.

The directory /usr/share/metview/app-defaults/UserDir/ exists

root# cd /usr/share/metview/app-defaults/UserDir/
root# pwd
/usr/share/metview/app-defaults/UserDir
root# ls -la
total 0
drwxr-xr-x 1 root root 512 Jan 22 20:13 .
drwxr-xr-x 1 root root 512 Jan 22 20:13 ..
-rw-r--r-- 1 root root 102 Jan 21 2022 .mv_iconlist
drwxr-xr-x 1 root root 512 Jan 22 20:13 'Getting Started'
-rw-r--r-- 1 root root 283 Jan 21 2022 'README I'
drwxr-xr-x 1 root root 512 Jan 22 18:47 System

following your suggestion I just gave the line:

sudo apt install --reinstall metview-data

$ sudo apt install --reinstall metview-data
[sudo] password for username:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 13.2 MB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu jammy/universe amd64 metview-data all 5.14.1-1 [13.2 MB]
Fetched 13.2 MB in 27s (486 kB/s)
(Reading database ... 83832 files and directories currently installed.)
Preparing to unpack .../metview-data_5.14.1-1_all.deb ...
Unpacking metview-data (5.14.1-1) over (5.14.1-1) ...
Setting up metview-data (5.14.1-1) ...

username$ metview
 creating Metview user directories in /home/username/metview...
 UNABLE TO CREATE USER DIRECTORY: /usr/share/metview/share/app-defaults/UserDir
metview: EXIT on ERROR (line 1), exit status 1, starting 'cleanup'
/usr/bin/metview: line 154: 5: Bad file descriptor

About the remark, you are right, it should not be needed, just giving all the steps.
And before is gave a missing command:

$ metview
/usr/bin/metview: line 21: dpkg-architecture: command not found

I wonder, why someone at Ubuntu does not test this? not complicated to reproduce.

And again, thank you, truly, for answering. More than I got in years. Probably wrong time and places.

Revision history for this message
Manfred Hampl (m-hampl) said :
#3

If the directory /usr/share/metview/app-defaults/UserDir/ already exists, then the cause must be something different.

I assume the error message comes from the following script (eventually in an earlier version)
https://git.launchpad.net/ubuntu/+source/metview/tree/metview/scripts/metview_create_user_dir

What is the output of the commands

uname -a
lsb_release -crid
apt policy metview metview-data
ls -ld ~/metview
bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir

Revision history for this message
Fernando (fometeo) said :
#4

It's a pleasure to talk to someone knowledgeable
username is fernando, and the example is at a Windows 10 WSL 1 Ubuntu 22.04.1 from Microsoft Store
... yes I know :-) but I've seen this kind of errors at dedicated servers and workstations also.
here it's all I have :-|

uname -a

Linux V155P15C2 4.4.0-19041-Microsoft #2311-Microsoft Tue Nov 08 17:09:00 PST 2022 x86_64 x86_64 x86_64 GNU/Linux

lsb_release -crid

fernando@V155P15C2:~$ lsb_release -crid
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy

apt policy metview metview-data

fernando@V155P15C2:~$ apt policy metview metview-data
metview:
  Installed: 5.14.1-1
  Candidate: 5.14.1-1
  Version table:
 *** 5.14.1-1 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
        100 /var/lib/dpkg/status
metview-data:
  Installed: 5.14.1-1
  Candidate: 5.14.1-1
  Version table:
 *** 5.14.1-1 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
        100 /var/lib/dpkg/status

ls -ld ~/metview

fernando@V155P15C2:~$ ls -ld ~/metview
ls: cannot access '/home/fernando/metview': No such file or directory

bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir

fernando@V155P15C2:~$ bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir
+ USER_SOURCE_DIR=/app-defaults/UserDir
+ '[' x = x ']'
+ USER_DIR=/home/fernando/metview
+ '[' -d /home/fernando/metview ']'
+ echo ' creating Metview user directories in /home/fernando/metview...'
 creating Metview user directories in /home/fernando/metview...
+ mkdir -p /home/fernando/metview
+ '[' -d /app-defaults/UserDir ']'
+ echo ' UNABLE TO CREATE USER DIRECTORY: /app-defaults/UserDir'
 UNABLE TO CREATE USER DIRECTORY: /app-defaults/UserDir
+ rmdir /home/fernando/metview
+ exit 1

Thank you

Revision history for this message
Manfred Hampl (m-hampl) said :
#5

Ok, this did not work as expected, because when running the metview_create_user_dir script in a standalone mode, the bash variable METVIEW_DIR_SHARE is not set.

Now try

METVIEW_DIR_SHARE=/usr/share/metview/share/ bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir

and report the results.

Revision history for this message
Fernando (fometeo) said :
#6

Ok, now within a full flag Ubuntu 22.04.1 LTS at a dedicated workstation, just fresh installed.
uname -a
Linux INT20 5.15.0-58-generic #64-Ubuntu SMP Thu Jan 5 11:43:13 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

All steps equal as before, as well same results.

METVIEW_DIR_SHARE=/usr/share/metview/share/ bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir
+ USER_SOURCE_DIR=/usr/share/metview/share//app-defaults/UserDir
+ '[' x = x ']'
+ USER_DIR=/home/fernando/metview
+ '[' -d /home/fernando/metview ']'
+ echo ' creating Metview user directories in /home/fernando/metview...'
 creating Metview user directories in /home/fernando/metview...
+ mkdir -p /home/fernando/metview
+ '[' -d /usr/share/metview/share//app-defaults/UserDir ']'
+ echo ' UNABLE TO CREATE USER DIRECTORY: /usr/share/metview/share//app-defaults/UserDir'
 UNABLE TO CREATE USER DIRECTORY: /usr/share/metview/share//app-defaults/UserDir
+ rmdir /home/fernando/metview
+ exit 1

Those double // may be an issue?

Revision history for this message
Manfred Hampl (m-hampl) said :
#7

The double // should not be an issue, but try again with

METVIEW_DIR_SHARE=/usr/share/metview/share bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir

Revision history for this message
Fernando (fometeo) said :
#8

Sorry, same error

fernando@INT20:~$ METVIEW_DIR_SHARE=/usr/share/metview/share bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir
+ USER_SOURCE_DIR=/usr/share/metview/share/app-defaults/UserDir
+ '[' x = x ']'
+ USER_DIR=/home/fernando/metview
+ '[' -d /home/fernando/metview ']'
+ echo ' creating Metview user directories in /home/fernando/metview...'
 creating Metview user directories in /home/fernando/metview...
+ mkdir -p /home/fernando/metview
+ '[' -d /usr/share/metview/share/app-defaults/UserDir ']'
+ echo ' UNABLE TO CREATE USER DIRECTORY: /usr/share/metview/share/app-defaults/UserDir'
 UNABLE TO CREATE USER DIRECTORY: /usr/share/metview/share/app-defaults/UserDir
+ rmdir /home/fernando/metview
+ exit 1

Revision history for this message
Manfred Hampl (m-hampl) said :
#9

Sorry, my fault, a "/share" too much.

Try

METVIEW_DIR_SHARE=/usr/share/metview bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir

Revision history for this message
Fernando (fometeo) said :
#10

fernando@INT20:~$ METVIEW_DIR_SHARE=/usr/share/metview bash -x /usr/lib/x86_64-linux-gnu/metview/metview_create_user_dir
+ USER_SOURCE_DIR=/usr/share/metview/app-defaults/UserDir
+ '[' x = x ']'
+ USER_DIR=/home/fernando/metview
+ '[' -d /home/fernando/metview ']'
+ echo ' creating Metview user directories in /home/fernando/metview...'
 creating Metview user directories in /home/fernando/metview...
+ mkdir -p /home/fernando/metview
+ '[' -d /usr/share/metview/app-defaults/UserDir ']'
+ cp -r '/usr/share/metview/app-defaults/UserDir/Getting Started' '/usr/share/metview/app-defaults/UserDir/README I' /usr/share/metview/app-defaults/UserDir/System /home/fernando/metview
+ chmod -R u+w /home/fernando/metview
+ cp /usr/share/metview/app-defaults/UserDir/.mv_iconlist /home/fernando/metview/._mv_iconlist_
+ cp '/usr/share/metview/app-defaults/UserDir/Getting Started/.mv_iconlist' '/home/fernando/metview/Getting Started/._mv_iconlist_'
+ chmod -R u+w /home/fernando/metview
+ echo ' created !'
 created !
+ unset USER_SOURCE_DIR
+ unset USER_DIR

fernando@INT20:~$ metview
creating new system link: /home/fernando/metview/System/.System -> /usr/share/metview/share/app-defaults
sed: can't read /usr/share/metview/share/app-defaults/Metview: No such file or directory
metview: EXIT on ERROR (line 1), exit status 2, starting 'cleanup'
/usr/bin/metview: line 154: 5: Bad file descriptor

Revision history for this message
Manfred Hampl (m-hampl) said :
#11

Ok, now I spotted the difference!

The data of metview are in
/usr/share/metview/app-defaults
but the metview program searches from them in
/usr/share/metview/share/app-defaults

I have no idea why it is like that.

Revision history for this message
Fernando (fometeo) said :
#12

Oh no! that's right. Can't figure why I did not notice it. Many thanks!

The solution for my case was then

sudo su
mkdir /usr/share/metview/share
ln -s /usr/share/metview/app-defaults /usr/share/metview/share/app-defaults
ln -s /usr/share/metview/etc /usr/share/metview/share/etc
ln -s /usr/share/metview/eccharts /usr/share/metview/share/eccharts
ln -s /usr/share/metview/icons_mv5 /usr/share/metview/share/icons_mv5

root@INT20:/usr/share/metview/share# ls -l
total 0
lrwxrwxrwx 1 root root 31 jan 23 13:47 app-defaults -> /usr/share/metview/app-defaults
lrwxrwxrwx 1 root root 27 jan 23 13:57 eccharts -> /usr/share/metview/eccharts
lrwxrwxrwx 1 root root 22 jan 23 13:50 etc -> /usr/share/metview/etc
lrwxrwxrwx 1 root root 28 jan 23 13:57 icons_mv5 -> /usr/share/metview/icons_mv5

And it works!

Revision history for this message
Manfred Hampl (m-hampl) said :
#13

I don't think that this was the optimal solution. I guess correcting the directory name somewhere inside /usr/bin/metview would have been better, but anyhow, if it's working now, that is fine,

Revision history for this message
Fernando (fometeo) said (last edit ):
#14

news update

Today at Microsoft Store there is a new version from Canonical of Ubuntu (Preview) made for Windows WSL 2 that is version 23.04, faster, where metview 5.17.4 (last version) installs out of the box showing graphically with qt 6.4.2 at Windows 11 natively. It just needs before the dh-exec :-)

sudo apt update
# better let it as is and do not make an apt upgrade for now
sudo apt -y install dh-exec
sudo apt -y install metview

and command metview works!