Jump to content
Josh

Plastic client in Docker container on Raspberry Pi 4

Recommended Posts

A little background to start. I'm using Plastic Cloud Edition for game development (Unity) and Unity's Build service. Unfortunately Unity doesn't support Plastic directly and I have a nightly job on my desktop computer that gets the latest in a clean Plastic workspace, copies the files to a git repository then commit/push. This triggers a build in Unity.

I want to move this to cron job on a Raspberry Pi so it is separate from my desktop and I can run it way more often without interrupting my work. I'm using Docker to keep this easily reproducible. 

Is it possible to install plastic cloud edition without a GUI on Linux? How would I configure it? I assume I'd need to follow these instructions and only install the client? 

http://blog.plasticscm.com/2019/01/fully-automated-plastic-scm-setup-on-raspberry-pi.html?utm_source=plasticscm-blog&utm_medium=blog-post&utm_content=installaplasticserveronraspberrypi

Thanks in advance.

 

Share this post


Link to post
Share on other sites

Also I realize using git synch is probably the best option, I would still need the Plastic client installed on my headless device to run it.

Share this post


Link to post
Share on other sites

The Plastic installation includes the GUI but you can forget about it and just run "cm" commands. All the client operation can be done via console: sync with git, update, create workspace...

if you plan to use GitSync involving big repos, please check that your git provider supports repos with this size.

Regards,

Carlos.

Share this post


Link to post
Share on other sites

Thanks Carlos, I'll give it a shot and see how it goes. Assuming I succeed I'd be happy to share my Dockerfile and instructions with the community in case it helps others as well.

Share this post


Link to post
Share on other sites

I'm finally back to working on this. I cannot find a direct download link for the cloud edition for Linux nor can I get this installed using apt-get. The blog post I linked earlier uses the client and server but does not provide a link to the cloud edition:

http://blog.plasticscm.com/2019/01/fully-automated-plastic-scm-setup-on-raspberry-pi.html

Link to client: https://www.plasticscm.com/download/last/plasticscm/linux/clientzip?utm_source=plasticscm-blog&utm_medium=blog-post&utm_content=fullyautomatedplasticscmsetuponaraspberrypi

Link to server: https://www.plasticscm.com/download/last/plasticscm/linux/serverzip?utm_source=plasticscm-blog&utm_medium=blog-post&utm_content=fullyautomatedplasticscmsetuponaraspberrypi

Link to cloud edition: ??

I've also tried using the instructions here to use apt-get: https://www.plasticscm.com/plastic-for-linux

I get the following message:

"E: Unable to locate package plasticscm-cloud"

Snippet from my Dockerfile:


FROM arm64v8/ubuntu:19.10

RUN apt-get update                  && \
    apt-get install -y                 \
    less                               \
    locate                             \
    python3                            \
    unzip                              \
    git                                \
    cron                               \
    apt-transport-https                \
    apt-utils                          \
    wget                               \
    gnupg                              \
    vim                             && \
    apt-get clean                   && \
    rm -rf /var/lib/apt/lists/*     && \
    echo "deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./" | tee /etc/apt/sources.list.d/plasticscm-stable.list && \
    wget https://www.plasticscm.com/plasticrepo/stable/ubuntu/Release.key -O - | apt-key add - && \
    apt-get update && \
    apt-get install plasticscm-cloud

Thanks!

Share this post


Link to post
Share on other sites

Hmm, when I run  apt-get update from within the container I get the following error:

W: GPG error: https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY CC5F15147A36124D
E: The repository 'https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

That explains why apt-get install didn't work. I don't mind using a direct link with wget instead but supporting apt-get is probably best in the long run, less dependency hassles.

Share this post


Link to post
Share on other sites

Hi,

- Our instructions include steps for the cloud edition: https://www.plasticscm.com/plastic-for-linux

- If you plan to install Ubuntu 19.10, please the following link because there is a workaround to install the GUI: https://plasticscmsupport.zendesk.com/hc/en-us/articles/360013103159-How-to-Install-Plastic-GUI-in-Ubuntu-19-10-and-later-

Quote

W: GPG error: https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY CC5F15147A36124D
E: The repository 'https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

- Anyway this error seems to be different. Have you recently installed the "Release.key". I remember we changed it a few weeks ago and I want to be sure you are not using the old one:

wget https://www.plasticscm.com/plasticrepo/stable/debian/Release.key -O - | sudo apt-key add -

Regards,

Carlos.

Share this post


Link to post
Share on other sites

Thanks for your reply Carlos. Note I mentioned the plastic-for-linux link in my earlier message and it doesn't work even when I include the workaround and re-downloaded the key. Detailed results:

 

root@5dffbc767dc6:/# echo "deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./" | tee /etc/apt/sources.list.d/plasticscm-stable.list
deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./
root@5dffbc767dc6:/# echo "deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
> deb http://us.archive.ubuntu.com/ubuntu/ bionic universe" | tee /etc/apt/sources.list.d/bionic-oldlibs.list
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
root@5dffbc767dc6:/# tail /etc/apt/sources.list.d/plasticscm-stable.list
deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./
root@5dffbc767dc6:/# tail /etc/apt/sources.list.d/bionic-oldlibs.list
deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
root@5dffbc767dc6:/# wget https://www.plasticscm.com/plasticrepo/stable/ubuntu/Release.key -O - | apt-key add -
--2020-04-21 06:03:54--  https://www.plasticscm.com/plasticrepo/stable/ubuntu/Release.key
Resolving www.plasticscm.com (www.plasticscm.com)... 104.211.26.212
Connecting to www.plasticscm.com (www.plasticscm.com)|104.211.26.212|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://s3.eu-west-2.amazonaws.com/plastic-releases/linux-packages/stable/ubuntu/Release.key [following]
--2020-04-21 06:03:55--  https://s3.eu-west-2.amazonaws.com/plastic-releases/linux-packages/stable/ubuntu/Release.key
Resolving s3.eu-west-2.amazonaws.com (s3.eu-west-2.amazonaws.com)... 52.95.149.0
Connecting to s3.eu-west-2.amazonaws.com (s3.eu-west-2.amazonaws.com)|52.95.149.0|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1210 (1.2K) [application/x-gzip]
Saving to: 'STDOUT'

-                                     100%[=========================================================================>]   1.18K  --.-KB/s    in 0s

2020-04-21 06:03:55 (5.25 MB/s) - written to stdout [1210/1210]

OK
root@5dffbc767dc6:/# apt-get update
Get:1 http://us.archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports eoan InRelease [255 kB]
Ign:4 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
Get:5 http://ports.ubuntu.com/ubuntu-ports eoan-updates InRelease [97.5 kB]
Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
Ign:7 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
Ign:4 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
Get:8 http://ports.ubuntu.com/ubuntu-ports eoan-backports InRelease [88.8 kB]
Ign:7 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
Ign:4 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
Ign:7 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
Get:9 http://ports.ubuntu.com/ubuntu-ports eoan-security InRelease [97.5 kB]
Ign:4 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
Ign:7 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
Ign:4 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
Get:10 http://ports.ubuntu.com/ubuntu-ports eoan/multiverse arm64 Packages [147 kB]
Ign:3 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ InRelease
Get:11 http://ports.ubuntu.com/ubuntu-ports eoan/restricted arm64 Packages [1034 B]
Get:12 http://ports.ubuntu.com/ubuntu-ports eoan/main arm64 Packages [1235 kB]
Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
Ign:7 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
Err:4 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
  404  Not Found [IP: 91.189.91.39 80]
Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
Ign:7 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
Get:13 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release [975 B]
Get:14 http://ports.ubuntu.com/ubuntu-ports eoan/universe arm64 Packages [11.4 MB]
Get:15 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release.gpg [481 B]
Get:17 http://ports.ubuntu.com/ubuntu-ports eoan-updates/universe arm64 Packages [222 kB]
Get:18 http://ports.ubuntu.com/ubuntu-ports eoan-updates/main arm64 Packages [276 kB]
Get:19 http://ports.ubuntu.com/ubuntu-ports eoan-backports/universe arm64 Packages [3075 B]
Get:20 http://ports.ubuntu.com/ubuntu-ports eoan-backports/main arm64 Packages [669 B]
Get:16 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Packages [17.3 kB]
Get:21 http://ports.ubuntu.com/ubuntu-ports eoan-security/universe arm64 Packages [172 kB]
Get:22 http://ports.ubuntu.com/ubuntu-ports eoan-security/main arm64 Packages [180 kB]
Fetched 14.4 MB in 5s (3152 kB/s)
Reading package lists... Done
E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/bionic/main/binary-arm64/Packages  404  Not Found [IP: 91.189.91.39 80]
E: Some index files failed to download. They have been ignored, or old ones used instead.
root@5dffbc767dc6:/# apt-get install plasticscm-cloud
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package plasticscm-cloud
root@5dffbc767dc6:/#

 

Share this post


Link to post
Share on other sites

Also, this appears to be the correct link to download the latest linux version but returns an error from S3:

https://www.plasticscm.com/download/last/plasticscm/linux/cloudzip

redirects to: https://s3.eu-west-2.amazonaws.com/plastic-releases/releases/9.0.16.4164/plasticscm/linux/PlasticSCM-9.0.16.4164-linux-installer.run

Error:

<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
<Key>
releases/9.0.16.4164/plasticscm/linux/PlasticSCM-9.0.16.4164-linux-installer.run
</Key>
<RequestId>A513C928FF0F349D</RequestId>
<HostId>
uqbWLT4c+n2OXhgiPW6n0cUy2UDYeGeVYO3In0M0wssWn0LfTZPWu6CmuNNhB5WEOGITTZrgVOY=
</HostId>
</Error>

 

Share this post


Link to post
Share on other sites

Following this link: http://blog.plasticscm.com/2019/01/fully-automated-plastic-scm-setup-on-raspberry-pi.html

I can get the dependencies installed by tweaking the /etc/apt/sources.list.d/mono-official-stable.list entry to match what is here instead for ubuntu:

https://www.mono-project.com/download/stable/#download-lin

But I cannot finish following these instructions since there isn't a working cloud version of plastic to download and unzip.

Share this post


Link to post
Share on other sites

- It seems to be something wrong on this machine (previous isntallation?). I'm able to install the "plasticscm-cloud" package on my clean Ubuntu 18.10 (using Ubuntu repo, not Debian)

tester@ubuntu:~$ sudo apt-get install plasticscm-cloud
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  gconf-service gconf-service-backend gconf2 gconf2-common libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common libgconf-2-4 libglade2-0 libgnome-2-0 libgnome-keyring-common
  libgnome-keyring0 libgnome2-0 libgnome2-bin libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0 libgnomevfs2-common liborbit-2-0
  plasticscm-certtools-mono4 plasticscm-client-complete plasticscm-client-core plasticscm-client-gtk plasticscm-gnome-sharp-mono4 plasticscm-gtk-sharp-mono4 plasticscm-libuv plasticscm-mono4
  plasticscm-server-core plasticscm-theme
Suggested packages:
  gconf-defaults-service libbonobo2-bin desktop-base gnome-icon-theme libgnomevfs2-bin libgnomevfs2-extra gamin | fam gnome-mime-data
The following NEW packages will be installed:
  gconf-service gconf-service-backend gconf2 gconf2-common libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common libgconf-2-4 libglade2-0 libgnome-2-0 libgnome-keyring-common
  libgnome-keyring0 libgnome2-0 libgnome2-bin libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0 libgnomevfs2-common liborbit-2-0
  plasticscm-certtools-mono4 plasticscm-client-complete plasticscm-client-core plasticscm-client-gtk plasticscm-cloud plasticscm-gnome-sharp-mono4 plasticscm-gtk-sharp-mono4 plasticscm-libuv
  plasticscm-mono4 plasticscm-server-core plasticscm-theme
0 upgraded, 34 newly installed, 0 to remove and 639 not upgraded.
Need to get 157 MB of archives.
After this operation, 476 MB of additional disk space will be used.

- Please run the following commands and try to install the package again:

sudo apt remove plasticscm-* 

sudo apt autoremove

Does it help?

Regards,

Carlos.

Share this post


Link to post
Share on other sites

This system is a Docker container, it only contains what I specify in the Dockerfile (which I pasted earlier) so previous installations aren't an issue. I tried your suggestion and it doesn't find plastic to remove.

Results:

root@5dffbc767dc6:/# apt remove plasticscm-*
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package plasticscm-*
E: Couldn't find any package by glob 'plasticscm-*'
E: Couldn't find any package by regex 'plasticscm-*'

root@5dffbc767dc6:/# apt autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 22 not upgraded.

I can try switching my container to Ubuntu 18.10 like you used to see if that helps.

Share this post


Link to post
Share on other sites

Getting apt-get working with older version of Ubuntu is a bit of a pain. Can you try with a current version of Ubuntu? Either way it's best to be able to use a current supported version of Linux to ensure we get security fixes among other things.

Share this post


Link to post
Share on other sites

Apparently I had to use 18.04 since that is the LTS version. Unfortunately still doesn't work with a clean Ubuntu:

 

root@58358cf51461:/# apt-get update
Get:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease [242 kB]
Get:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease [88.7 kB]
Get:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease [74.6 kB]
Get:4 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease [88.7 kB]
Get:5 http://ports.ubuntu.com/ubuntu-ports bionic/main arm64 Packages [1285 kB]
Get:6 http://ports.ubuntu.com/ubuntu-ports bionic/multiverse arm64 Packages [153 kB]
Get:7 http://ports.ubuntu.com/ubuntu-ports bionic/universe arm64 Packages [11.0 MB]
Get:8 http://ports.ubuntu.com/ubuntu-ports bionic/restricted arm64 Packages [572 B]
Get:9 http://ports.ubuntu.com/ubuntu-ports bionic-updates/main arm64 Packages [846 kB]
Get:10 http://ports.ubuntu.com/ubuntu-ports bionic-updates/universe arm64 Packages [1222 kB]
Get:11 http://ports.ubuntu.com/ubuntu-ports bionic-updates/restricted arm64 Packages [1036 B]
Get:12 http://ports.ubuntu.com/ubuntu-ports bionic-updates/multiverse arm64 Packages [3457 B]
Get:13 http://ports.ubuntu.com/ubuntu-ports bionic-backports/universe arm64 Packages [7336 B]
Get:14 http://ports.ubuntu.com/ubuntu-ports bionic-backports/main arm64 Packages [8260 B]
Get:15 http://ports.ubuntu.com/ubuntu-ports bionic-security/universe arm64 Packages [743 kB]
Get:16 http://ports.ubuntu.com/ubuntu-ports bionic-security/restricted arm64 Packages [581 B]
Get:17 http://ports.ubuntu.com/ubuntu-ports bionic-security/main arm64 Packages [572 kB]
Get:18 http://ports.ubuntu.com/ubuntu-ports bionic-security/multiverse arm64 Packages [1843 B]
Fetched 16.3 MB in 5s (3242 kB/s)
Reading package lists... Done
root@58358cf51461:/# apt-get install -y apt-transport-https
Reading package lists... Done
Building dependency tree
Reading state information... Done
apt-transport-https is already the newest version (1.6.12).
0 upgraded, 0 newly installed, 0 to remove and 12 not upgraded.
root@58358cf51461:/# "deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./" | tee /etc/apt/sources.list.d/plasticscm-stable.list
bash: deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./: No such file or directory
root@58358cf51461:/# echo !!
echo "deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./" | tee /etc/apt/sources.list.d/plasticscm-stable.list
deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./
root@58358cf51461:/# wget https://www.plasticscm.com/plasticrepo/stable/ubuntu/Release.key -O - | apt-key add -
--2020-04-22 06:29:50--  https://www.plasticscm.com/plasticrepo/stable/ubuntu/Release.key
Resolving www.plasticscm.com (www.plasticscm.com)... 104.211.26.212
Connecting to www.plasticscm.com (www.plasticscm.com)|104.211.26.212|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://s3.eu-west-2.amazonaws.com/plastic-releases/linux-packages/stable/ubuntu/Release.key [following]
--2020-04-22 06:29:51--  https://s3.eu-west-2.amazonaws.com/plastic-releases/linux-packages/stable/ubuntu/Release.key
Resolving s3.eu-west-2.amazonaws.com (s3.eu-west-2.amazonaws.com)... 52.95.148.88
Connecting to s3.eu-west-2.amazonaws.com (s3.eu-west-2.amazonaws.com)|52.95.148.88|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1210 (1.2K) [application/x-gzip]
Saving to: 'STDOUT'

-                          100%[======================================>]   1.18K  --.-KB/s    in 0s

2020-04-22 06:29:55 (5.19 MB/s) - written to stdout [1210/1210]

OK
root@58358cf51461:/# apt-get update
Hit:1 http://ports.ubuntu.com/ubuntu-ports bionic InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports bionic-updates InRelease
Hit:3 http://ports.ubuntu.com/ubuntu-ports bionic-backports InRelease
Hit:5 http://ports.ubuntu.com/ubuntu-ports bionic-security InRelease
Ign:4 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ InRelease
Get:6 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release [975 B]
Get:7 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Release.gpg [481 B]
Get:8 https://www.plasticscm.com/plasticrepo/stable/ubuntu ./ Packages [17.3 kB]
Fetched 18.7 kB in 14s (1376 B/s)
Reading package lists... Done
root@58358cf51461:/# apt-get install plasticscm-cloud
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package plasticscm-cloud

 

Edited by Josh
More recent attempt

Share this post


Link to post
Share on other sites

Hi Josh,

 

I have just tested it in a Ubuntu 19.10 and it worked fine. Let me explain you what I did on a fresh install:

That led me to a working installation of Plastic cloud edition (you can check it in the attached image).

 

Is there any reason in particular why you wanted the cloud client?

 

Best,

Héber.

Share this post


Link to post
Share on other sites

Hi Héber,

I followed the steps you provided and it still breaks for me. Could my issue be related to using Docker or the Raspberry Pi hardware? I can provide the Dockerfile and other scripts I'm using to run it if it would be helpful. Here is what I did:

  • Set Dockerfile to use Ubuntu 19.10 and ran the container
  • Edited  /etc/apt/sources.list.d/bionic-oldlibs.list and added the two lines provided. Result from tailing the file:
    root@cf2b950adeef:~# tail /etc/apt/sources.list.d/bionic-oldlibs.list
    deb http://us.archive.ubuntu.com/ubuntu/ bionic main restricted
    deb http://us.archive.ubuntu.com/ubuntu/ bionic universe
  • Ran  apt upgrade (logged in as root so not using sudo):
    root@cf2b950adeef:~# apt upgrade
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Calculating upgrade... Done
    0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
  • Ran apt-get update (first step in linked instructions) and got an error:
    root@cf2b950adeef:~# apt-get update
    Get:1 http://us.archive.ubuntu.com/ubuntu bionic InRelease [242 kB]
    Get:2 http://ports.ubuntu.com/ubuntu-ports eoan InRelease [255 kB]
    Ign:3 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
    Get:4 http://ports.ubuntu.com/ubuntu-ports eoan-updates InRelease [97.5 kB]
    Ign:5 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
    Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
    Ign:3 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
    Ign:5 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
    Get:7 http://ports.ubuntu.com/ubuntu-ports eoan-backports InRelease [88.8 kB]
    Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
    Ign:3 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
    Ign:5 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
    Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
    Get:8 http://ports.ubuntu.com/ubuntu-ports eoan-security InRelease [97.5 kB]
    Ign:3 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
    Ign:5 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
    Get:9 http://ports.ubuntu.com/ubuntu-ports eoan/universe arm64 Packages [11.4 MB]
    Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
    Ign:3 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
    Ign:5 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
    Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
    Err:3 http://us.archive.ubuntu.com/ubuntu bionic/main arm64 Packages
      404  Not Found [IP: 91.189.91.39 80]
    Ign:5 http://us.archive.ubuntu.com/ubuntu bionic/universe arm64 Packages
    Ign:6 http://us.archive.ubuntu.com/ubuntu bionic/restricted arm64 Packages
    Get:10 http://ports.ubuntu.com/ubuntu-ports eoan/restricted arm64 Packages [1034 B]
    Get:11 http://ports.ubuntu.com/ubuntu-ports eoan/main arm64 Packages [1235 kB]
    Get:12 http://ports.ubuntu.com/ubuntu-ports eoan/multiverse arm64 Packages [147 kB]
    Get:13 http://ports.ubuntu.com/ubuntu-ports eoan-updates/main arm64 Packages [277 kB]
    Get:14 http://ports.ubuntu.com/ubuntu-ports eoan-updates/universe arm64 Packages [223 kB]
    Get:15 http://ports.ubuntu.com/ubuntu-ports eoan-backports/main arm64 Packages [669 B]
    Get:16 http://ports.ubuntu.com/ubuntu-ports eoan-backports/universe arm64 Packages [3075 B]
    Get:17 http://ports.ubuntu.com/ubuntu-ports eoan-security/universe arm64 Packages [173 kB]
    Get:18 http://ports.ubuntu.com/ubuntu-ports eoan-security/main arm64 Packages [184 kB]
    Fetched 14.4 MB in 5s (2691 kB/s)
    Reading package lists... Done
    E: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/bionic/main/binary-arm64/Packages  404  Not F            ound [IP: 91.189.91.39 80]
    E: Some index files failed to download. They have been ignored, or old ones used instead.

     

Share this post


Link to post
Share on other sites

In case it helps (so you can try it), my Dockerfile:

FROM arm64v8/ubuntu:19.10

RUN useradd --create-home --shell /bin/bash builder && adduser builder sudo

#USER builder
RUN apt-get update                 && \
    apt-get install -y                \
    apt-transport-https                    \
    apt-utils                              \
    wget                                   \
    gnupg                                  \
    vim                                 && \
    apt-get clean                       && \
    rm -rf /var/lib/apt/lists/*

CMD /bin/bash

And the bash script I use to run it:

docker build --tag "build_system" .

docker run -ti --rm --name "buildSystem" \
-p 5000:5000                             \
build_system

The underlying system on the Pi is also Ubuntu 19.10.

Share this post


Link to post
Share on other sites

Hi,

- I guess you are always insllating from scratch via Dockerfile, right? So no previous installation...

- When you run "sudo apt-get update" I can also see some errors when updating Ubuntu Packages. Is this weird, right?

- Also in your update command last output I cannot find the Plastic repo. If the repo is properly configured in your machine, you should be able to install "plasticscm-client-complete" package. Not very sure why you were trying to install the cloud package.

deb https://www.plasticscm.com/plasticrepo/stable/ubuntu/ ./

- The fact that the package is not found sounds like our repo is not properly configured/updated in your machine. Not sure how it could be dependent on Docker installation.

Anyway, we offcially support and run tests for multiple Linux distros but not for Docker (not officially supported). But even with that, I think it should work.

Regards,

Carlos.

Share this post


Link to post
Share on other sites
Quote

- I guess you are always insllating from scratch via Dockerfile, right? So no previous installation...

Correct. One of the benefits of using Docker, don't have to worry about the mess created when I experiment. :)

Quote

- When you run "sudo apt-get update" I can also see some errors when updating Ubuntu Packages. Is this weird, right?

Not necessarily. I know I pasted the output from many experiments so it gets convoluted. When I used 18.10 or 19.10 without adding /etc/apt/sources.list.d/bionic-oldlibs.list I did not get any issues running apt-get update. So it appears this was caused by adding the old packages. This may imply there may be an issue with using them with my hardware (arm), that is the only difference I can think of.

Quote

- Also in your update command last output I cannot find the Plastic repo. If the repo is properly configured in your machine, you should be able to install "plasticscm-client-complete" package.

Yeah, I stopped posting the output after the first error since I knew the rest would give the same error as before (and it did). Even when I add the plastic repo I can never get the software to install from it and get the error message I posted in earlier replies (it's always the same error).

Quote

Not very sure why you were trying to install the cloud package.

I noticed Héber said something similar. I have a license for the cloud edition so that's the client I need installed. Am I incorrect in choosing that package to install? For example, for normal use, I always ensure I (and my team) download the cloud version only.

The whole point of this project is for me to automate using Unity's CI. So I will have a cron job that gets the latest version from the Plastic cloud repository, copy to a directory with a git version of the same project, then commit/push to git. Or perhaps I will switch to using git-synch but same difference. The changes in the git repo triggers a build with Unity. If Unity CI could support Plastic cloud directly that would save me a bunch of hassles.

I currently have this working on my Windows box but Windows is crap for many things including automated processes like this. :) I have already run into reliability issues and would rather create something I can depend on and easily share with others. This is another benefit of using docker, I simply share my Dockerfile + shell script(s) and anyone can run this.

Quote

The fact that the package is not found sounds like our repo is not properly configured/updated in your machine. Not sure how it could be dependent on Docker installation.

Sure but that doesn't explain why the package isn't found in my previous output when I followed the instructions fully. Unless I'm not following the instructions accurately but I can't see any differences and it appears neither of you are seeing any as well. I agree it doesn't make sense that this could be caused by docker. I don't know what else could be the culprit other than the arm hardware.

Which reminds me, I've asked this a couple times, can I get a working link to download the cloud edition for Linux? This link gets an error from S3:

https://www.plasticscm.com/download/last/plasticscm/linux/cloudzip

I would like to try follow the RPi instructions to see if I can get them to work (from here: http://blog.plasticscm.com/2019/01/fully-automated-plastic-scm-setup-on-raspberry-pi.html ) and they use the non-cloud edition. If I don't need to use the cloud edition I'm happy to try something else but my understanding my license only works with that.

Share this post


Link to post
Share on other sites

Hi,

- The only difference between Plastic cloud edition and the regular Plastic client is that the cloud edition transparently installs a local server (to host your local repos) and the GUI configuration panels are prepared to use the cloud. But there is not license limitation. I mean you can install the regular Linux client package "plasticscm-client-core" and point it to work with "Organization@cloud". But I guess this package is neither reachable for you, right?

- You should be able to also install the regular client via zip (similar to the blog post) but aso needs you to manually install mono, p7zip-full. I mean you can follow all the same instructions from the post. The godd thing about using our official packages instead of the zip is that they it automatically handles all the dependencies, library versions (mono...).

Regards,

Carlos.

Share this post


Link to post
Share on other sites

Thanks for the clarification about which download of Plastic I can use, I will try the RPi instructions using the client download link. Also, you are correct, trying to install other plastic versions using apk also did not work. Hopefully manually installing will. I agree using a package manager is better but looks like I'm stuck. :(

Share this post


Link to post
Share on other sites

I have made progress but am running into new issues. Installing the client via download worked. I figured out how to automatically get the download link so I could use wget and always obtain the latest version when running my container. This all works fine.

These commands also worked:

  • clconfigureclient
  • cm workspace create synchProjectwk synchProject --repository=<my repo>

I ran into an issue when I did the following:

  • cd synchProject
  • cm switch main/develop

Result:

root@117b661f74fb:/build_system/synchProject# cm switch main/develop
Performing switch operation...
Searching for changed items in the workspace...
cant resolve internal call to "System.IO.InotifyWatcher::GetInotifyInstance" (tested without signature also)

Your mono runtime and class libraries are out of sync.
The out of sync library is: /opt/plasticscm/client/clientcommon.dll

When you update one from git you need to update, compile and install
the other too.
Do not report this as a bug unless you're sure you have updated correctly:
you probably have a broken mono install.
If you see other errors or faults after this message they are probably related
and you need to fix your mono install first.
cant resolve internal call to "System.IO.InotifyWatcher::GetInotifyInstance" (tested without signature also)

Your mono runtime and class libraries are out of sync.
The out of sync library is: /opt/plasticscm/client/clientcommon.dll

When you update one from git you need to update, compile and install
the other too.
Do not report this as a bug unless you're sure you have updated correctly:
you probably have a broken mono install.
If you see other errors or faults after this message they are probably related
and you need to fix your mono install first.

Cannot perform the switch to branch/label/changeset/shelve since there are pending changes. Please review the pending changes and retry the operation again.

I don't understand the error about pending changes. The directory is completely empty aside from the .plastic file. How can that be a pending change?

I tried updating mono-complete but I already have the latest version installed:

root@117b661f74fb:/build_system/synchProject#apt-get update
Hit:1 https://download.mono-project.com/repo/ubuntu stable-bionic InRelease
Hit:2 http://ports.ubuntu.com/ubuntu-ports eoan InRelease
Hit:3 http://ports.ubuntu.com/ubuntu-ports eoan-updates InRelease
Hit:4 http://ports.ubuntu.com/ubuntu-ports eoan-backports InRelease
Hit:5 http://ports.ubuntu.com/ubuntu-ports eoan-security InRelease
Reading package lists... Done
root@117b661f74fb:/build_system/synchProject# apt-get install mono-complete
Reading package lists... Done
Building dependency tree
Reading state information... Done
mono-complete is already the newest version (6.8.0.105-0xamarin3+ubuntu1804b1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Is there a specific version of mono-complete that I need to use or some other issue going on?

Share this post


Link to post
Share on other sites

Same mono errors when I tried cm update. I also noticed a message about the encryption key:

root@117b661f74fb:/build_system/synchProject# cm update
cant resolve internal call to "System.IO.InotifyWatcher::GetInotifyInstance" (tested without signature also)

Your mono runtime and class libraries are out of sync.
The out of sync library is: /opt/plasticscm/client/clientcommon.dll

When you update one from git you need to update, compile and install
the other too.
Do not report this as a bug unless you're sure you have updated correctly:
you probably have a broken mono install.
If you see other errors or faults after this message they are probably related
and you need to fix your mono install first.
cant resolve internal call to "System.IO.InotifyWatcher::GetInotifyInstance" (tested without signature also)

Your mono runtime and class libraries are out of sync.
The out of sync library is: /opt/plasticscm/client/clientcommon.dll

When you update one from git you need to update, compile and install
the other too.
Do not report this as a bug unless you're sure you have updated correctly:
you probably have a broken mono install.
If you see other errors or faults after this message they are probably related
and you need to fix your mono install first.
Processing directory conflicts
Processing directory operations
Processing directory operations (downloading revisions)

The server '<serverName>@cloud' requires encryption, but your server is not configured with the encryption key. To configure your local server make sure you become the admin of the server (owner), try again and you will be asked to enter encryption key. Otherwise, ask your sysadmin or search 'Encrypt all data' in the online docu.

I don't understand, it is telling me to become the admin of the local server? How could I not be the admin, I installed it?

Share this post


Link to post
Share on other sites

Hi,

- I've been debugging in detail your issue. Our packages are not avilable for ARM. They will work on a regular Ubuntu but not for Raspbian.

- When you are manually installing mono, not sure about your current version. We distribute and test with mono 4.6.2  . I would try to install the most similar version. Otherwise, there could be compatibility problems:

/opt/plasticscm5/mono/bin/mono --version
Mono JIT compiler version 4.6.2 (tarball Tue Jan  9 18:16:00 UTC 2018)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
    TLS:           __thread
    SIGSEGV:       altstack
    Notifications: epoll
    Architecture:  amd64
    Disabled:      none
    Misc:          softdebug 
    LLVM:          supported, not enabled.


 

- Anyway, not sure if the zip installer includes all the libraries/dependencies for GitSync . A worker tried a workaround some time ago for GitServer but not 100% sure it's valid. The thread is related toi GitServer but I think this is the same library we use for GitSync.

- In order to set your user as the server admin and this way, enable the encryption key:

cm setowner --help

Regards,.

Carlos.

Share this post


Link to post
Share on other sites

Thanks for digging in to that, so the package issue is the hardware.

I'll look into installing an older version of mono, apparently I have to specify a different repository for older versions.

I'm not worried about GitSync I can simply cp the files from Plastic to git instead. Main drawback is this method takes double the HD space but automating git is pretty easy.

For cm setowner I think it wants me to do this for the local server but it's not working (or I'm doing something wrong). The user account I'm using is already the owner for the cloud server. Here is what I tried:

userAccount = user account I specified during the clconfigureclient step which is also an admin/owner for the cloud server

 cm setowner -user=<userAccount>
(no error)

 cm setowner -user=<userAccount> repserver:localhost
The server spec is not correct: localhost.

cm setowner -user=<userAccount> repserver:localhost:8084
Error: Connection refused

cm setowner -user=<userAccount repserver:<cloudServer>
(no error)

After each run of cm setowner I get the same error message as before when trying cm update.

Thanks for your continued help on this.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...