-
-
Save marlun78/9349792 to your computer and use it in GitHub Desktop.
| # How to install `ipkg` on a Synology DS214 | |
| After a couple of days of trying to get `ipkg` woking on my DS214 I found [this article](https://github.com/trepmag/ds213j-optware-bootstrap) by [trepmag](https://github.com/trepmag). It is written for the DS213j, but it’s been working for me and [others](https://github.com/alberthild) for the DS214 too. | |
| I have done some minor changed to clarify some things, but if you are a Linux guy (unlike me) my changes might be of no use to you. | |
| ## Guide | |
| ### SSH | |
| You need to have enabled `ssh` on your DiskStation. Then open up your terminal and type: | |
| ```bash | |
| $ ssh root@[your-ds-ip] | |
| ``` | |
| Read more about how to setup SSH on your DiskStation [here](http://forum.synology.com/wiki/index.php/Enabling_the_Command_Line_Interface). | |
| ### Create optware root directory | |
| ```bash | |
| $ mkdir /volume1/@optware | |
| $ mkdir /opt | |
| $ mount -o bind /volume1/@optware /opt | |
| ``` | |
| ### Setup ipkg | |
| ```bash | |
| $ feed=http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable | |
| $ ipk_name=`wget -qO- $feed/Packages | awk '/^Filename: ipkg-opt/ {print $2}'` | |
| $ wget $feed/$ipk_name | |
| $ tar -xOvzf $ipk_name ./data.tar.gz | tar -C / -xzvf - | |
| $ mkdir -p /opt/etc/ipkg | |
| $ echo "src cross $feed" > /opt/etc/ipkg/feeds.conf | |
| ``` | |
| (Source: http://www.nslu2-linux.org/wiki/Optware/HomePage) | |
| ### Set PATH | |
| Open `/etc/profile`: | |
| ```bash | |
| $ vi /etc/profile | |
| ``` | |
| Type `i` to enable insertion mode. See more `vi`-commands [here](http://forum.synology.com/wiki/index.php/Basic_commands_for_the_Linux_vi_Editor). | |
| Add `/opt/bin:/opt/sbin:` to the `PATH` variable. | |
| Then press `ESC` and press `ZZ` to save and exit. | |
| If you are signed in as `root` as I was, you need to do the same to the `/root/.profile` file - then: | |
| ```bash | |
| $ source /root/.profile | |
| ``` | |
| ### Create init scripts | |
| The following steps will allow to automatically bind the /volume1/@optware directory to /opt and trigger the /opt/etc/init.d/* scripts. | |
| Create the /etc/rc.local (chmod 755): | |
| ```bash | |
| $ touch /etc/rc.local | |
| $ chmod 755 /etc/rc.local | |
| $ vi /etc/rc.local | |
| ``` | |
| Insert: | |
| ```bash | |
| #!/bin/sh | |
| # Optware setup | |
| [ -x /etc/rc.optware ] && /etc/rc.optware start | |
| ``` | |
| Then press `ESC` and press `ZZ` to save and exit. | |
| Create the `/etc/rc.optware` file (chmod 755): | |
| ```bash | |
| $ touch /etc/rc.optware | |
| $ chmod 755 /etc/rc.optware | |
| $ vi /etc/rc.optware | |
| ``` | |
| Insert: | |
| ```bash | |
| #! /bin/sh | |
| if test -z "${REAL_OPT_DIR}"; then | |
| # next line to be replaced according to OPTWARE_TARGET | |
| REAL_OPT_DIR=/volume1/@optware | |
| fi | |
| case "$1" in | |
| start) | |
| echo "Starting Optware." | |
| if test -n "${REAL_OPT_DIR}"; then | |
| if ! grep ' /opt ' /proc/mounts >/dev/null 2>&1 ; then | |
| mkdir -p /opt | |
| mount -o bind ${REAL_OPT_DIR} /opt | |
| fi | |
| fi | |
| [ -x /opt/etc/rc.optware ] && /opt/etc/rc.optware | |
| ;; | |
| reconfig) | |
| true | |
| ;; | |
| stop) | |
| echo "Shutting down Optware." | |
| true | |
| ;; | |
| *) | |
| echo "Usage: $0 {start|stop|reconfig}" | |
| exit 1 | |
| esac | |
| exit 0 | |
| ``` | |
| (source: a working optware env) | |
| I had trubbles copy/paste this code from Github and insert it into `rc.optware` with the `vi` editor and I had to go line by line to get it in correctly. | |
| ### Finaly | |
| Reboot the DiskStation and you should be done! | |
| As I said, I’m not a Linux guy, so if you spot a misstake, please let me know. | |
| I hope this helps! | |
| Good luck! | |
Hello, I followed the procedure for a new DS214, but when issuing "ipkg update", then I get:
Downloading /Packages
An error ocurred, return value: 1.
Collected errors:
ipkg_download: ERROR: Command failed with return value 1: `wget --passive-ftp -q -P /opt/ipkg-3sK5uI /Packages'
I checked for the path, and indeed it starts with /opt/bin:/opt/sbin:/sbin... as it is supposed to do.
However, there is no other wget besides the original one which is in /usr/bin. And there
is no /opt/sbin directory whatsoever (?)
So how is it suppposed to work?
Thanks for help!
Worked perfect on my DS214+
Thank you very much :)
Can you guys help me?
i got the error when starting optware:
/etc/rc.optware: exit: line 31: Illegal number: 0
Here is my rc.optware output:
! /bin/sh
if test -z "${REAL_OPT_DIR}"; then
next line to be replaced according to OPTWARE_TARGET
REAL_OPT_DIR=/volume1/@Optware
fi
case "$1" in
start)
echo "Starting Optware."
if test -n "${REAL_OPT_DIR}"; then
if ! grep ' /opt ' /proc/mounts >/dev/mull 2>&1 ; then
mkdir -p /opt
mount -o bind ${REAL_OPT_DIR} /opt
fi
fi
[ -x /opt/etc/rc.optware ] && /opt/etc/rc.optware
;;
reconfig)
true
;;
stop)
echo "Shutting down Optware."
true
;;
*)
echo "Usage: $0 {start|stop|reconfig}"
exit 1
esac
working on my DS214+
for those who haven't heard, ipkg is no longer supported.
I'm looking at zyxmon's replacement Qnapware as the next package manager.
Let me know if you've tried on the DS214+.
https://forum.synology.com/enu/viewtopic.php?t=95346
Awesome.
HI dear,
I have a DS116, and aI followed your instruction, to install ipkg. I think I did everything same like you, but when i write ipkg update I got an error: ipkg: error while loading shared libraries: /opt/lib/libc.so.6: internal error
What do you think, what shuld I do know?
Thanks
Robert
I have a DS216j and used this before coming here: https://zarino.co.uk/post/ds214se-under-the-hood/
Awesome, the detailed steps helped me install it on my station. Thank you so much!
Works flawlessly for DS214+, thank you.